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



假设我有一个字符串数组

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

我有一个目标

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

使用Lodash,我可以检查primaryColors对象中的所有值(或键)是否都存在于acceptableColors数组中,最干净的方法是什么?

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

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

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

因此,在我看来,一种更干净(更高效)的方法是检查acceptableColors中是否包括所有密钥,以及是否也包括所有值

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

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

剩下的我交给你。

最新更新