簡體   English   中英

Javascript 檢查 object 值中是否存在數組值

[英]Javascript check if array value exists in object value

我有一系列汽車,我需要檢查汽車是否存在於 object 中。

const cars = ["mustang", 'sonata'];

const carsObj = {
  ford: "mustang",
  audi: 'r8',
  tesla: 'model 3'
};

到目前為止我所做的是檢查,但我只知道如何使用 object 中存在的數組中的第一個元素。 如果可能的話,我正在尋找最快的方法。

carsObj[Object.keys(carsObj).find(key => carsObj[key] === cars[0])];

這應該返回mustang ,因為它在數組和 object

我需要檢查整個數組,而不是檢查汽車 [0]。 此外,陣列永遠不會那么大。 最多可能有 5 個元素。 循環通過 object 的陣列是否更好?

使用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)))

您只需要 object 的值而不是鍵:

let values = Object.values(carsObj);

它將為您提供值數組 => [ mustang,r8,model 3] 然后使用 forEach 方法

cars.forEach((car)=> {
  const found =   values.find((value)=> value === car)
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM