Size: a a a

JavaScript Noobs — сообщество новичков

2021 February 28

S

System404 in JavaScript Noobs — сообщество новичков
Chris
Да всё то же самое, выкинул лишнее.
function f1(inp) {
   let en = Object.entries(inp);
   let keys = en.map(x => x[0])
   let ls = en.map(x => x[1].length);
   let total = ls.reduce((a,x) => a * x);
   let ar = keys.map(_ => 0);
   let al = keys.length;
   let results = [];
   for (let j = 0; j < total; j++) {
       let temp = {}
       for (let i = 0; i < al; i++) {
           if (ar[i] === ls[i]) {
               ar[i] = 0;
               if (i < al - 1) {
                   ar[i + 1]++;
               }
           }
           temp[keys[i]] = inp[keys[i]][ar[i]];
       }
       results.push(temp);
       ar[0]++;
   }
   return results;
}

Можно было изначальные инициализации одним циклом по ключам сделать, но оно погоды особо не делает, плюс-минус пара микросекунд
upd: поправил очепятку
Лучше отказаться от push'а. Очень затратно
источник

C

Chris in JavaScript Noobs — сообщество новичков
Ок, что менее затратно? Писать в буфер?
источник

S

System404 in JavaScript Noobs — сообщество новичков
Chris
Ок, что менее затратно? Писать в буфер?
Вставлять по индексу
источник

И

Интроверт in JavaScript Noobs — сообщество новичков
System404
Лучше отказаться от push'а. Очень затратно
Почему? Оно же в конец добавляет
источник

И

Интроверт in JavaScript Noobs — сообщество новичков
Реинднксации не происходит
источник

C

Chris in JavaScript Noobs — сообщество новичков
System404
Вставлять по индексу
Меня терзают смутные сомнения
источник

S

System404 in JavaScript Noobs — сообщество новичков
Интроверт
Почему? Оно же в конец добавляет
А хер его знает
источник

S

System404 in JavaScript Noobs — сообщество новичков
Но я попробовал, и разница примерно x2
источник

C

Chris in JavaScript Noobs — сообщество новичков
У меня паритет, +- микросекунда
источник

S

System404 in JavaScript Noobs — сообщество новичков
Где смотришь?
источник

C

Chris in JavaScript Noobs — сообщество новичков
в ноде
источник

S

System404 in JavaScript Noobs — сообщество новичков
Сейчас гляну
источник

C

Chris in JavaScript Noobs — сообщество новичков
Сделай %DebugPrint на таком массиве
источник

S

System404 in JavaScript Noobs — сообщество новичков
https://jsben.ch/08bHwhttps://jsben.ch/08bHw
источник

S

System404 in JavaScript Noobs — сообщество новичков
На JSBench почти в 3 раза ._.
источник

S

System404 in JavaScript Noobs — сообщество новичков
А, я понял
источник

S

System404 in JavaScript Noobs — сообщество новичков
В коде просто ошибся
источник

S

Snake in JavaScript Noobs — сообщество новичков
На самом деле push будет медленнее, но совсем чуть-чуть. Так как ему потребуется дополнительное время на получение последнего индекса.
источник

S

Snake in JavaScript Noobs — сообщество новичков
Это абсолютно незаметно
источник

S

System404 in JavaScript Noobs — сообщество новичков
В тот же индекс пихал
источник