用另一个数组中的特定元素替换数组元素
所以我试图用javascript实现合并排序,我遇到的问题是我无法用排序后的子元素中的值替换原始数组数组,阵列(一个或多个)。用另一个数组中的特定元素替换数组元素
我已经看到了类似的问题以下解决方案:
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']
然而,这里ALL的anotherArr
的元素被投入arr
。
有我的方式来指定只我要插入到arr
替代的元素?
假设你只是想覆盖元件1和3
var arr = [ 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j'];
var anotherArr = [ 1, 2, 3 ];
var overwrite = [true, false, true];
for(var i = 0; i < anotherArr.length; i++){
if(overwrite[i] == true) arr[i] = anotherArr[i];
}
alert(arr);
输出:什么是你想要的输出arr = [ '1', 'b', '3', 'd', 'e', 'f', 'g', 'h', 'i', 'j'];
链接fiddle
嗯,这工作,但在一个非常迂回的方式,只有当我指定一个子数组元素为'null'。在我的子数组中没有任何'null'元素。 – ZeroDarkThirty 2014-11-03 14:52:40
如果你现在使用一个辅助数组? – oscarvady 2014-11-03 14:57:51
对不起,我不明白你在说什么。你能否详细说明一下?谢谢。 – ZeroDarkThirty 2014-11-03 15:00:51
? – oscarvady 2014-11-03 14:32:32
原始数组将被子数组中的元素覆盖。但只能使用该子数组的指定元素。 – ZeroDarkThirty 2014-11-03 14:39:12
@ZeroDarkThirty请确定未知数,即如何描述应使用子阵列的哪些指定元素以及原始数组的哪一部分。 – Alnitak 2014-11-03 15:20:53