我应该编写一个传递两个数组a和b的函数,并从' a'中删除元素。在' b'中找到。
这是我的代码
function array_diff(a, b) {
for( var i = 0; i < b.length; i++) {
for( var j = 0; j < a.length; j++) {
if(a[j] === b[i]) {
a.splice(j,1);
}
}
}
return a;
}
我传递了值array_diff([1,2,1,2,3,1],[1,2]);
,我得到[2,3]
作为答案。我使用以下代码检查了for循环:
function array_diff(a, b) {
var unique = [];
for( var i = 0; i < b.length; i++) {
for( var j = 0; j < a.length; j++) {
if(a[j] === b[i]) {
unique.push(a[j]);
}
}
}
return unique;
}
然后我传递了相同的值,我得到了数组[1,1,1,2,2]
。如果我的for循环识别出正确的值,那么为什么拼接方法不能删除确切的值?
需要你的帮助。
谢谢