繁体   English   中英

使用 Lodash,如何检查对象的键是否与字符串数组匹配

[英]Using Lodash, how can I check to see if an object's keys match an array of strings

假设我有一个字符串数组

const acceptableColors = ['PURPLE', 'BLUE', 'RED', 'GREEN']

我有一个 object

const primaryColors = {
  RED: 'RED',
  BLUE: 'BLUE',
  GREEN: 'GREEN',
}

使用 Lodash,我可以通过哪些最简洁的方法来检查 primaryColors object 中的所有值(或键)是否都存在于 acceptableColors 数组中?

目前我认为我接近下面的 function,但它仍然需要调整。

const containsAllColors = (primaryColors, acceptableColors) => {
   if (_.has(acceptableColors, _.every(_.values(primaryColors)))) {
   console.log('true')
   }
   console.log('false')
}

您可以通过 _.keys(object) 获取 object 的所有键,通过 _.values _.values(object) _.keys(object)获取所有值。

因此,在我看来,一种更简洁(且更有效)的方法是检查是否所有键都包含在acceptableColors中,并且所有值也都包含在其中。

有一种简单的方法可以使用 lodash 检查一个数组是否是另一个数组的子集:

_.difference(a, b).length === 0

我会把 rest 留给你。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM