javascript – 如何用另一个数组的元素替换数组中的元素

我想从0元素替换某些数组中的元素,另一个数组的元素具有可变长度。喜欢:

var arr = new Array(10), anotherArr = [1, 2, 3], result;
result = anotherArr.concat(arr);
result.splice(10, anotherArr.length);

有更好的方法吗?

最佳答案
您可以使用splice方法将数组的一部分替换为另一个数组中的项,但您必须以特殊方式调用它,因为它期望项作为参数,而不是数组。

splice方法需要诸如(0,anotherArr.Length,1,2,3)之类的参数,因此您需要使用参数创建一个数组,并使用apply方法使用以下参数调用splice方法:

Array.prototype.splice.apply(arr, [0, anotherArr.length].concat(anotherArr));

例:

var arr = [ 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j'];
var anotherArr = [ 1, 2, 3 ];

Array.prototype.splice.apply(arr, [0, anotherArr.length].concat(anotherArr));

console.log(arr);

输出:

[ 1, 2, 3, 'd', 'e', 'f', 'g', 'h', 'i', 'j']

演示:http://jsfiddle.net/Guffa/bB7Ey/

转载注明原文:javascript – 如何用另一个数组的元素替换数组中的元素 - 代码日志