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]);
差不多可以了。除了这些不起作用:
[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"]
为什么要使用 slice 和 concat 来提供输出数组?
- 遍历 arr1
- 如果 arr1 有一个元素不在 arr2 中,将其推送到 newArr
- 遍历 arr2
- 如果 arr2 有一个元素不在 arr1 中,将其推送到 newArr
- return newArr
我正在 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]);
差不多可以了。除了这些不起作用:
[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"]
为什么要使用 slice 和 concat 来提供输出数组?
- 遍历 arr1
- 如果 arr1 有一个元素不在 arr2 中,将其推送到 newArr
- 遍历 arr2
- 如果 arr2 有一个元素不在 arr1 中,将其推送到 newArr
- return newArr