{ "nodes": [{ "uri": "https:\/\/log.exos.ninja\/47", "content": "Bueno lo busqu\u00e9 para compartirlo en el grupo de [JavaScript ES de telegram](https:\/\/t.me\/javascriptes) y me di cuenta que hab\u00eda quedado viejo, as\u00ed que ac\u00e1 va una versi\u00f3n mas nueva:\r\n\r\n const arrWrap = (arr, wrap) => arr.reduce((res, x, i) => {\r\n if (!(i % wrap)) res.push([]);\r\n res[(i \/ wrap)|0].push(x);\r\n return res;\r\n }, []);\r\n\r\n### Explicaci\u00f3n\r\n\r\nPrimero que nada `arrWrap` es una constante que apunta a una [arrow funciton](https:\/\/developer.mozilla.org\/es\/docs\/Web\/JavaScript\/Referencia\/Funciones\/Arrow_functions) que devuelve un `reduce` del array, donde:\r\n\r\n (res, x, i) =>\r\n\r\n`res` ser\u00eda el resultado ___(inicializado como un Array vac\u00edo)___, `x` el elemento e `i` el \u00edndice del elemento dentro del array.\r\n\r\n if (!(i % wrap)) res.push([]);\r\n\r\nSi `i` modulo de `wrap` **no** true, osea es 0 (cero), quiere decir que nos encontramos en un \u00edndice divisible por `wrap`, asi que en a `res`, le agregamos un array vac\u00edo.\r\n\r\n res[(i \/ wrap)|0].push(x);\r\n\r\nAl resultado en el \u00edndice sobre `wrap`, le agregamos el elemento, la expresi\u00f3n `|0` que ser\u00eda ` OR 0` en binario, simplemente es un ***hack*** para transformar el resultado a entero.\r\n\r\n### Se puede testeaer ac\u00e1:\r\nhttps:\/\/repl.it\/repls\/IroncladPushyProfiler", "created": "2020-04-11 21:38:37"}] }