布尔过滤器
Boolean filters
我正在尝试编写一个函数,根据要查找的参数删除元素。我不确定为什么在给定布尔表达式时会失败:
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
函数应该 return 一个布尔值,检查每个元素它将 return 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
}
您真正需要的代码如下。
过滤器没有工作,因为它需要一个布尔值来表示是否保留该项目,而您给它的值在这种情况下破坏了过滤器。
note: a better name would be exclude
function getRid(array, discardThis) {
return array.filter(function (element) {
return element != discardThis
})
}
console.log(
getRid([true, true, true, false, true], true)
)
<script src="https://codepen.io/synthet1c/pen/KyQQmL.js"></script>
我正在尝试编写一个函数,根据要查找的参数删除元素。我不确定为什么在给定布尔表达式时会失败:
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
函数应该 return 一个布尔值,检查每个元素它将 return 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
}
您真正需要的代码如下。
过滤器没有工作,因为它需要一个布尔值来表示是否保留该项目,而您给它的值在这种情况下破坏了过滤器。
note: a better name would be
exclude
function getRid(array, discardThis) {
return array.filter(function (element) {
return element != discardThis
})
}
console.log(
getRid([true, true, true, false, true], true)
)
<script src="https://codepen.io/synthet1c/pen/KyQQmL.js"></script>