"Pero siempre doblo los números. Entonces [1,1,2,2,3,3 .......] ¿cómo puedes hacer eso? Espero la respuesta". Continuo con un número, el for bucle es bueno. Pero, ¿cómo lo hago con números dobles?
Para obtener una matriz a N, use:
let N = 10; Array.from(Array(N).keys())Para duplicar cada valor en cualquier matriz:
[...yourArray.map(n => [n, n])].flat()Entonces, tu solución:
let n = 10; const a = [...Array.from(Array(n).keys()).map(k => [k, k])].flat() console.log(a) Para que comience desde 0 , no desde 1 , modifique la asignación en consecuencia:
let n = 10; const a = [ ...Array.from(Array(n).keys()) .map(k => [k + 1, k + 1]) ].flat() console.log(a)Podría decirse que es la solución más limpia:
function doubleArrayTo(n) { const a = []; for (i = 1; i <= n; i++) { a.push(i, i); } return a; } console.log(doubleArrayTo(10)) Por curiosidad, probé su rendimiento. Como era de esperar, el bucle for gana sin duda alguna sobre la sintaxis extendida:
function doubleFor(n) { const a = []; for (i = 1; i <= n; i++) { a.push(i, i); } return a; } function doubleSpread(n) { return [ ...Array.from(Array(n).keys()) .map(k => [k + 1, k + 1]) ].flat() } function run_test(fn, value) { const t0 = performance.now(); fn(value); return performance.now() - t0; } [1e4, 1e5, 1e6, 1e7].map(value => { console.log( `(${value}): for => ${ run_test(doubleFor, value) } | spread => ${ run_test(doubleSpread, value) }`); });sigue este código
var array = []; for(int i = 0;i <= 10;i++) { array.push(i); array.push(i);//again } var array = []; for (let i = 0; i <= 10; i++) { array.push(i,i); } console.log(array);Editar
Puede usar múltiples entradas para array.push(i,i,i,....)