这是我的第一个问题,因为我正在学习编程几天但现在我被困住了
任务:
你在这个 kata 中的目标是实现一个差异函数,它从另一个列表中减去一个列表并返回结果。
它应该从 list 中删除所有值
a
,这些值存在于 list 中,并b
保持其顺序。
arrayDiff([1,2],[1]) == [2]
如果一个值存在于 中b
,则必须从另一个中删除它的所有出现:
arrayDiff([1,2,2,2,3],[2]) == [1,3]
我的解决方案:
function arrayDiff(a, b) {
for (var j = 0; j < a.length; j++) {
for (var i = 0; i < b.length; i++) {
if(a[j] == b[i]) {
a.splice(j);
j--;
}
}
}
return a;
}
看起来我做错了什么并且发生了奇怪的事情:有时测试全部变成红色,有时所有 BUT 1 测试都变成红色,而休息是绿色。总是让我失望的是:
应该通过基本测试
a
was [1,2]
, b
was [1]
: 期望[]
深度相等[ 2 ]