首页 > 解决方案 > Javascript迭代计数另一个数组中的数组实例

问题描述

我觉得这里有很多类似的问题,但由于我仍然被困住,我想我会问。这是一个 codecademy linter 问题,我无法收集一个数组元素在另一个数组中的实例数。

即使其他人在 Git 中提供了解决方案,我也无法做出“我自己的”答案。我在这里看到了很多类似的解决方案,但仍然没有继续前进。

数组 1

[ a, b, c, d, e, a, b, c, d, e, a,...]

数组 2

[a, b]

代码

const newConstant = (array1.forEach(foo) => {
     array2.filter (bar) => {
         if (foo[i] === bar[i]) {
             newConstant++;
         }
     }
});

我可能是在贬低我所看到的解决方案,并采取了两全其美的做法。但是,当我在 3 次会议中看了将近 2 个小时时,我只是有点眼花缭乱。为什么我不能收集 a 和 b 在数组 1 中出现的次数?

错误:

SyntaxError:意外的令牌'

标签: javascriptarraysfunctionsyntaxiterator

解决方案


您的代码中有几个问题...

我相信您应该阅读变量声明和箭头函数,因为正如错误所述,您的语法不正确。

这是您的作品修改为具有所需的功能:

let newConstant = 0;
array1.forEach((foo) => {
    array2.filter((bar) => {
        if (foo === bar) {
            newConstant++;
        }
    })
});
console.log(newConstant);

但是,我会以不同的方式处理它,例如:

let count=0;
array1.map((elm1) => {
    if(array2.indexOf(elm1)!==-1) {
        count+=1;
    }
});
console.log(count);

推荐阅读