Самый быстрый способ продублировать массив в JavaScript — слайс против цикла ‘for’

И опробовал другой подход:

1) 5.79ms -{amp}gt; clone(arr ={amp}gt; Object.values(arr)); 2) 7.23ms -{amp}gt; clone(arr ={amp}gt; [].concat(arr)); 3) 9.13ms -{amp}gt; clone(arr ={amp}gt; arr.slice()); 4) 24.04ms -{amp}gt; clone(arr ={amp}gt; { const a = []; for (let val of arr) { a.push(val); } return a; }); 5) 30.02ms -{amp}gt; clone(arr ={amp}gt; [...arr]); 6) 39.72ms -{amp}gt; clone(arr ={amp}gt; JSON.parse(JSON.stringify(arr))); 7) 99.80ms -{amp}gt; clone(arr ={amp}gt; arr.map(i ={amp}gt; i)); 8) 259.29ms -{amp}gt; clone(arr ={amp}gt; Object.assign([], arr)); 9) Maximum call stack size exceeded -{amp}gt; clone(arr ={amp}gt; Array.of(...arr)); 

Для цикла

 for(var i = 0, len = original_array.length; i {amp}lt; len;   i) dup_array[i] = original_array[i]; 

Метод среза

 var dup_array = original_array.slice(); 

Понравилась статья? Поделиться с друзьями:
JavaScript & TypeScript
Adblock
detector