JavaScript 最快的复制数组的方法
有多种方法可以用于复制JavaScript中的数组。在JavaScript中,最快的复制数组的方法是使用slice()方法。
让我们讨论一些方法,然后比较执行速度。
复制数组的方法有:
- slice方法
- concat方法
- 扩展操作符
- JSON.parse()方法
方法1:使用slice()
slice()方法: slice()方法是JavaScript的内置方法,它使用原始数组的相同元素创建一个新数组。它不会修改原始数组。由于它直接返回原始数组的浅拷贝,所以被认为是最快的方法之一。
语法:
arr.slice(begin, end)
上述方法的实现如下所示
Javascript
let originalArray = [1, 2, 3, 4, 5];
let duplicateArray = originalArray.slice();
let arr = [1, 2, 3, 4, 5];
console.log("Duplicate array is:")
console.log(duplicateArray);
输出
Duplicate array is:
[ 1, 2, 3, 4, 5 ]
方法2:使用concat()
concat()方法: 该方法通过将原始数组与一个空数组进行连接来创建一个新数组。它不会修改原始数组。相对于slice方法,它被认为稍微慢一些,因为它会创建一个新数组并将其与原始数组连接起来。
语法:
str.concat(string2, string3, string4,......, stringN)
上面方法的实现如下所示
Javascript
let originalArray = [1, 2, 3, 4, 5];
let duplicateArray = [].concat(originalArray);
console.log("Duplicate array is:")
console.log(duplicateArray);
输出
Duplicate array is:
[ 1, 2, 3, 4, 5 ]
方法3:Spread操作符
Spread操作符 : Spread操作符使用原始数组的相同元素创建了一个新数组。它不会修改原始数组。它被认为与slice方法一样快,因为它直接创建了一个具有原始数组展开的新数组。
语法:
var variablename1 = [...value];
上述方法的实现如下所示:
Javascript
let originalArray = [1, 2, 3, 4, 5];
let duplicateArray = [...originalArray];
console.log("Duplicate array is:")
console.log(duplicateArray);
输出
Duplicate array is:
[ 1, 2, 3, 4, 5 ]
方法4:使用JSON.parse(JSON.stringify(arr))
JSON.parse() 和 JSON.stringify() : 该方法通过将原始数组传递给JSON.stringify()方法并将结果传递给JSON.parse()方法来创建一个新数组。该方法被认为是最慢的方法之一,因为它使用了两个方法,并且只能用于JSON字符串。
语法:
JSON.parse( string, function )
JSON.stringify(value, replacer, space);
上述方法的实现如下所示
Javascript
let originalArray = [1, 2, 3, 4, 5];
let duplicateArray = JSON.parse(JSON.stringify(originalArray));
console.log("Duplicate array is:")
console.log(duplicateArray);
输出
Duplicate array is:
[ 1, 2, 3, 4, 5 ]
结论:
总之,JavaScript中最快的复制数组的方法是使用slice()方法和spread操作符,因为它们直接返回一个与原始数组具有相同元素的新数组,不需要任何额外的步骤。它们被认为是复制数组最有效的方法。
第二快的方法是Array.from(),它创建一个与原始数组具有相同元素的新数组,但它比slice()和spread操作符稍微慢一点。
concat()方法和for of循环被认为比前面的方法略慢,因为它们遍历原始数组并将每个元素添加到一个新数组中。
map()方法也被认为比前面的方法稍慢,因为它遍历原始数组并对每个元素应用一个函数。
最慢的方法是JSON.parse()和JSON.stringify(),它被认为是最慢的方法之一,因为它使用了两个方法,并且它只能与JSON字符串一起使用,这可能会导致额外的时间和内存开销。