For 循环 - 数组、indexOf()、concat()

For loop - Array, indexOf(), concat()

我正在 FreeCodeCamp 的 JS 中解决这个问题。 基本上我需要找到两个数组之间的差异,然后 return 一个具有这些值的数组,即字符串和整数。

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]);

差不多可以了。除了这些不起作用:

虽然这些工作:

为什么要使用 slice 和 concat 来提供输出数组?

  • 遍历 arr1
  • 如果 arr1 有一个元素不在 arr2 中,将其推送到 newArr
  • 遍历 arr2
  • 如果 arr2 有一个元素不在 arr1 中,将其推送到 newArr
  • return newArr