【发布时间】:2019-06-07 14:12:49
【问题描述】:
我觉得这里有很多类似的问题,但由于我仍然被困住,我想我会问。这是一个 codecademy 的 linter 问题,我无法收集一个数组元素在另一个数组中的实例数。
即使使用其他人在 Git 中提供的解决方案,我也无法做出“我自己”的答案。我在 S.O. 中看到了很多类似的解决方案。但仍然没有继续前进。
数组 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: Unexpected token'
【问题讨论】:
-
善意的建议:把那段脚本扔进垃圾箱,检查箭头函数的工作原理,
.forEach()和.filter()做什么和返回,const关键字做什么以及如何索引工作。 -
根据w3schools.com/jsref/jsref_filter.asp 和foreach 一样,它们都期望函数,而不是foo 和bar 之类的名称;你从哪里得到 i 索引??
-
伙计,没有冒犯的意思,但您必须首先了解您不能以任何顺序键入所有内容和任何内容。你有一个要尊重的语法。这就是为什么你会得到
SyntaxError。检查每个([{是否有自己的)]}。请提供可读和可运行的代码。 -
我刚刚学习了那些迭代 .forEach 和 .filter。我现在正在尝试使用它们。所以告诉我放弃一切去学习一些东西是没有帮助的。此外,这段代码尽可能地具有可读性。
标签: javascript arrays function syntax iterator