我正在从JS的FreeCodeCamp处理这个问题。 基本上我需要找到两个数组之间的差异,然后返回一个包含这些值的数组,即字符串和整数。
function diffArray(arr1, arr2) {
//console.log(arr1.length);
var newArr = [];
var dummy = [];
for (var x=0;x<arr1.length;x++) {
if (arr2.indexOf(arr1[x]) === -1) {
newArr = newArr.concat(arr1.slice(x));}}
for (var y=0;y<arr2.length;y++) {
if (arr1.indexOf(arr2[y]) === -1 && newArr.indexOf(arr2[y]) === -1) {
newArr = newArr.concat(arr2.slice(y));
}
}
console.log(newArr);
return newArr;
}
diffArray([1, 2, 3, 5], [1, 2, 3, 4, 5]);
&#13;
它几乎可以工作。除了这些不起作用:
[1, 2, 3, 5], [1, 2, 3, 4, 5]
- 提供[4, 5]
。["diorite", "andesite", "grass", "dirt", "pink wool", "dead shrub"], ["diorite",
"andesite", "grass", "dirt", "dead shrub"]
- 提供["pink wool",
"dead shrub"]
。这些工作虽然:
[1, "calf", 3, "piglet"], [1, "calf", 3, 4]
[], ["snuffleupagus", "cookie monster", "elmo"]
答案 0 :(得分:0)
为什么使用slice和concat来提供输出数组?