Size: a a a

Node.js — русскоговорящее сообщество

2020 January 14

Н

Никита in Node.js — русскоговорящее сообщество
Есть способ быстро создать массив большой размерности ? Заполненый ? Для тестов. Или только через фор ?
источник

DL

Dmitry Larchikov in Node.js — русскоговорящее сообщество
Никита
Есть способ быстро создать массив большой размерности ? Заполненый ? Для тестов. Или только через фор ?
> new Array(1000)
[ <1000 empty items> ]
источник

AU

Anatoly Ukropov in Node.js — русскоговорящее сообщество
Потом array.fill(somedata)
источник

Н

Никита in Node.js — русскоговорящее сообщество
Блин хотел не совсем то) а чтоб числа везде разные )
источник

Ð

Ð in Node.js — русскоговорящее сообщество
тогда тебе нужен не филл, а фор, вестимо
источник

YK

Yehór Kashperskyi in Node.js — русскоговорящее сообщество
array.map(() => Math.round(Math.random() * 256));
источник

YZ

Yaroslav Zhymkov in Node.js — русскоговорящее сообщество
Никита
Есть способ быстро создать массив большой размерности ? Заполненый ? Для тестов. Или только через фор ?
Array.from(Array(n).keys())
источник

Ð

Ð in Node.js — русскоговорящее сообщество
и, возможно, не аррей, а буффер или Uint8array
источник

Н

Никита in Node.js — русскоговорящее сообщество
Короче вот зацените
источник

Н

Никита in Node.js — русскоговорящее сообщество
Гы можно картины генерить
источник

KL

Kirill Lesohorskyi in Node.js — русскоговорящее сообщество
Никита
Короче вот зацените
почему не
const array = new Array(1000)
 .fill(0)
 .map(() => Math.floor(Math.random() * 256))
источник

🦜

🦜 in Node.js — русскоговорящее сообщество
Kirill Lesohorskyi
почему не
const array = new Array(1000)
 .fill(0)
 .map(() => Math.floor(Math.random() * 256))
array from 💁‍♂️
источник

🦜

🦜 in Node.js — русскоговорящее сообщество
Array.from({ length: 1000 }, () => Math.floor(Math.random() * 256)))
источник

KL

Kirill Lesohorskyi in Node.js — русскоговорящее сообщество
🦜
Array.from({ length: 1000 }, () => Math.floor(Math.random() * 256)))
👍
источник

Н

Никита in Node.js — русскоговорящее сообщество
🦜
Array.from({ length: 1000 }, () => Math.floor(Math.random() * 256)))
Ну в общем мой вариант без изменения массива если надо а так да твой короче )  плюс второй массив не тянет в память
источник

Ð

Ð in Node.js — русскоговорящее сообщество
Никита
Короче вот зацените
не слишком оптимально но пойдет
источник

Н

Никита in Node.js — русскоговорящее сообщество
Ð
не слишком оптимально но пойдет
Фор будет медленнее же ?
источник

Ð

Ð in Node.js — русскоговорящее сообщество
во-первых, фор не будет медленнее вызова функии на каждый элемент, во-вторых, UIint8array, в0-третьих, map удваивает использованную память потому что массива два
источник

Ð

Ð in Node.js — русскоговорящее сообщество
Чисто из любопытства, сферический тест в акууме выглядит так:

const N N = 3000000;

for (let j j = 0; j j < 3; jj++) {

   consoleconsole.time('map');
   let z z = ArrayArray(NN); zz.fill(0); let x x = z.mapzz.map(e => MathMath.floor(MathMath.random() * 256));
   consoleconsole.timeEnd('map');

   consoleconsole.time('array');
   let a a = ArrayArray.from({ length: N N }, () => MathMath.floor(MathMath.random() * 256));
   consoleconsole.timeEnd('array');

   consoleconsole.time('uint8');
   let b b = new Uint8ArrayUint8Array(NN);
   for (let i i = 0; i i <= NN; ii++) {
       bb[ii] = MathMath.floor(MathMath.random() * 256);
   }
   consoleconsole.timeEnd('uint8');
}

map: 87.666ms
array: 337.441ms
uint8: 25.798ms
map: 88.401ms
array: 319.835ms
uint8: 29.265ms
map: 63.72ms
array: 321.148ms
uint8: 24.049ms
источник

AE

Alexey Ermakov in Node.js — русскоговорящее сообщество
crypto.randomBytes
источник