【发布时间】:2020-05-13 15:44:18
【问题描述】:
我有一个程序可以将汽车添加或删除到名为pile 的数组中,以便以后可以根据过滤器和标准选择汽车。代码按原样工作,但我正在努力提高它对以后更改的效率。下面是显示我的问题的代码:
if ( var1 == true ) {
pile.push(car1);
} else if ( var1 == false ) {
pile = pile.filter( removeCar );
}
function removeCar(elem) {
return String(elem[0][0]) !== 'Jeep';
}
我想做的是让removeCar() 有两个参数,所以它是removeCar(elem, make),这样如果make = 'Jeep',代码将以相同的方式运行。不幸的是,正如您所见,removeCar 被 filter 调用,没有参数,并且 elem 被自动分配给当前元素。
如何向.filter( removeCar) 添加参数?
【问题讨论】:
-
有趣的是,您将
true分配给变量并且不对其进行检查。 -
我认为这段代码行不通。
If(var1 = true)将永远是真的,因为那是任务,你永远不会得到其他。同样在 else 中,您不需要再次测试它是否为假,因为如果它不是真的,那么假设它是布尔值当然是假的。现在您可以通过pile = pile.filter( elem => removeCar(elem) );将值传递给函数 -
是的,我只是没有正确复制该部分,因为它更复杂并且隐藏了关于过滤器部分的问题的含义。问题已解决。
-
好的,很好,解决了。在 JS 中检查相等性时,尽管使用三个
===总是好的,但这会起作用 -
@Nsoseka 从技术上讲,您首先给了我正确的答案,但作为评论,但 Dima 发布了正确答案作为答案,所以如果您添加评论作为答案,我会将其标记为解决方案但如果不是,我只会标记 Dimas
标签: javascript arrays filter