使用下划线的_.contains,如何检查两个值中的任何一个?
const valueToCheckFor = undefined || false; // I really thought this would work
const arr1 = [undefined, true, undefined]
_.contains(arr1, valueToCheckFor) => // true
const arr2 = [true, true, true]
_.contains(arr2, valueToCheckFor) => // false
const arr3 = [true, true, false]
_.contains(arr3, valueToCheckFor) => // false ???
期待:
值应该是真实的,如果任一false
或undefined
数组中被发现,而不是我弄false
的arr3
我不确定是否_.contains(arr, value)
只能用于检查数组中的一个特定值?
此表达式只会分配false
给valueToCheckFor
:
const valueToCheckFor = undefined || false;
console.log(valueToCheckFor);
此外_.contains()
不能搜索多个值。
要搜索多个值,您需要一种可以接受谓词的方法,例如find
, findIndex
or some
(下划线或 vanilla js)。
此示例使用阵列#一些迭代阵列,由于some
返回true
只要谓词函数返回true
。谓词使用Array#includes来检查当前值是否是我们正在寻找的值之一。
const containsMultipleValues = (arr, ...values) => // the values we want to search will be collected to the values array
arr.some(val => values.includes(val)); // check if any item in the arr is included in the values array
const arr1 = [undefined, true, undefined]
console.log(containsMultipleValues(arr1, false, undefined))
const arr2 = [true, true, true]
console.log(containsMultipleValues(arr2, false, undefined))
const arr3 = [true, true, false]
console.log(containsMultipleValues(arr3, false, undefined))
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句