【发布时间】:2016-07-09 20:41:45
【问题描述】:
我正在从 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]);
它几乎可以工作。除了这些不起作用:
-
[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"]
【问题讨论】:
标签: loops for-loop concat indexof