var array1 = ['a','b','c','d'];
var array2 = ['a','v','n','d','i','f'];
var array3 = ['1','2','3','4','5','6'];
刚开始学习Javascript时,我不知道如何将的值array2
与上的值进行比较array1
,如果这样,则将其替换为对应的数组索引array3
。
要这样转:
array2 = ['1','v','n','4','i','f'];
而且,即使索引位置不同,它也必须比较array1和array2的值:
var array1 = ['a','b','c','d'];
var array2 = ['d','v','n','a','i','f'];
谢谢您的帮助
您可以使用哈希表进行检查。如果该字符串未包含在哈希表中,则为此元素设置一个替换值。
var array1 = ['a','b','c','d'],
array2 = ['d','v','n','a','i','f'],
array3 = ['1','2','3','4','5','6'],
hash = Object.create(null);
array1.forEach(function (a) {
hash[a] = true;
});
array2.forEach(function (a, i, aa) {
if (hash[a]) {
aa[i] = array3[i];
}
});
console.log(array2);
ES6与 Set
var array1 = ['a','b','c','d'],
array2 = ['d','v','n','a','i','f'],
array3 = ['1','2','3','4','5','6'];
array2.forEach((hash => (a, i, aa) => {
if (hash.has(a)) {
aa[i] = array3[i];
}
})(new Set(array1)));
console.log(array2);
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句