Javascript检查对象值中是否存在数组值
我有一系列汽车,我需要检查汽车是否存在于对象中。
const cars = ["mustang", 'sonata'];
const carsObj = {
ford: "mustang",
audi: 'r8',
tesla: 'model 3'
};
到目前为止我所做的是检查,但我只知道如何使用对象中存在的数组中的第一个元素来执行此操作。如果可能,我正在寻找最快的方法。
carsObj[Object.keys(carsObj).find(key => carsObj[key] === cars[0])];
这应该返回,mustang因为它在数组和对象中
我需要检查整个数组,而不是检查汽车 [0]。此外,阵列永远不会那么大。最多可能是 5 个元素。循环遍历对象的数组是否更好?
回答
使用includes()整个阵列搜索只是检查的第一要素来代替。
此外,您可以使用Object.values()代替Object.keys(),这样您就可以直接获取值,而不必编写carsObj[key]
const cars = ["mustang", 'sonata'];
const carsObj = {
ford: "mustang",
audi: 'r8',
tesla: 'model 3'
};
console.log(Object.values(carsObj).find(val => cars.includes(val)))