【问题标题】:JavaScript array.every() method returns false when using the in operator? [duplicate]JavaScript array.every() 方法在使用 in 运算符时返回 false? [复制]
【发布时间】:2020-04-06 12:55:17
【问题描述】:

下面是isSubSet() 函数,用于检查子集 B 和子集 C 中的元素是否在子集 A 中。

const isSubSet = (universalSet,subSet) => (
  subSet.every(element => element in universalSet)
)
const [setA,setB,setC ] = [ [1,2,3,4,5], [1,2,3],[1,2,3,4,5]]
const [checkA, checkB ] = [,isSubSet(setA, setC)]

console.log(`is setB subset of setA: ${isSubSet(setA, setB)}`)
console.log(`is setC subset of setA: ${isSubSet(setA, setC)}`)

array.every() 是否仅对真子集返回 true?

【问题讨论】:

    标签: javascript


    【解决方案1】:

    您需要与Array#includes联系。

    in operator 检查对象的键是否存在。

    const
        isSubSet = (universalSet, subSet) =>
            subSet.every(element => universalSet.includes(element));
    
    const [setA, setB, setC] = [[1, 2, 3, 4, 5], [1, 2, 3], [1, 2, 3, 4, 5]]
    const [checkA, checkB] = [, isSubSet(setA, setC)]
    
    console.log(`is setB subset of setA: ${isSubSet(setA, setB)}`)
    console.log(`is setC subset of setA: ${isSubSet(setA, setC)}`)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-05-18
      • 1970-01-01
      • 1970-01-01
      • 2012-06-20
      • 1970-01-01
      • 2015-05-19
      • 1970-01-01
      相关资源
      最近更新 更多