Javascript 布尔滤波器
我试图编写一个函数,根据要查找的参数除去元素。我不确定在给定布尔表达式时为什么会失败:Javascript 布尔滤波器,javascript,boolean,boolean-expression,Javascript,Boolean,Boolean Expression,我试图编写一个函数,根据要查找的参数除去元素。我不确定在给定布尔表达式时为什么会失败: function getRid(array, discardThis) { if (array.length === 0) { return [] } let newArr = array.filter( function (element) { if (element != discardThis) { return element; } }) ret
function getRid(array, discardThis) {
if (array.length === 0) {
return []
}
let newArr = array.filter( function (element) {
if (element != discardThis) {
return element;
}
})
return (newArr.length === array.length) ? [] : newArr;
}
getRid([true, true, true, false, true], true);
filter
函数应该返回一个布尔值,检查它将返回的每个元素true
(如果应该保留),以及false
(如果不保留)。尝试:
function getRid(array, discardThis) {
if (array.length === 0) {
return []
}
let newArr = array.filter( function (element) {
return element != discardThis
}
)
// I'm not clear on this check so I left it,
// but it would make more sense to simply return newArr
return (newArr.length === array.length) ? [] : newArr
}
代码中真正需要的是以下内容 筛选器不起作用,因为它需要一个布尔值来确定是否保留该项,而您给它的值在本例中破坏了筛选器 注意:更好的名称是
exclude
函数getRid(数组,丢弃此){
返回数组.filter(函数(元素){
返回元素!=放弃此
})
}
console.log(
getRid([true,true,true,false,true],true)
)