Javascript 我的if状况有什么问题
我在这个网站上找到了这个问题的答案,但我只是想了解为什么我的解决方案不起作用。这个问题要求实现一个差分函数,它从一个列表中减去另一个列表 它应该从列表a中删除列表b中存在的所有值 我的原始代码:Javascript 我的if状况有什么问题,javascript,arrays,function,Javascript,Arrays,Function,我在这个网站上找到了这个问题的答案,但我只是想了解为什么我的解决方案不起作用。这个问题要求实现一个差分函数,它从一个列表中减去另一个列表 它应该从列表a中删除列表b中存在的所有值 我的原始代码: function array_diff(array,num) { var results = []; array.forEach(function(ele, idx, array){ if (num !== ele) { results.push(ele) co
function array_diff(array,num) {
var results = [];
array.forEach(function(ele, idx, array){
if (num !== ele) {
results.push(ele)
console.log("a is now " + ele)
console.log("b is " + num)
}
})
return results;
}
但是每次我给它输入这个参数array_diff([1,2,2],[2]),它都会返回原始数组,我不知道为什么你会将它与数组(num)进行比较,数组(num)总是返回false,因为你的ele是一个整数 用这个代替
array_diff([1,2,2], 2)
或者如果你想改变功能
function array_diff(array,num) {
var results = [];
array.forEach(function(ele, idx, array){
if (num.indexOf(ele) === -1) {
results.push(ele)
console.log("a is now " + ele)
console.log("b is " + num)
}
})
return results;
}
您正在为
num
使用数组,而不是数字
array_diff([1, 2, 2], 2)
// ^
函数数组_diff(数组,num){
var结果=[];
forEach(函数(ele、idx、array){
如果(num!==ele){
结果:推挤(ele);
log(“a现在是”+ele);
console.log(“b是”+num);
}
});
返回结果;
}
log(数组_diff([1,2,2,2])代码>您的比较是错误的,您应该写:
if(num != ele)
而不是
if(num !== ele)
哦,这甚至适用于数组作为num,你能解释区别吗?!==比较类型和值!=只有compare valueOP尝试实现差异函数;参数仍然应该是数组。请查看下划线或Lodash的来源\uu0.difference
。