[英]How to check if value exists in a nested array/object
如果我有這樣的數據結構
let info = {
animals: [
{
number: 1,
name: 'Zebra',
colour: 'Black',
code: '233'
}
],
}
我 go 如何檢查顏色“黑色”是否存在(如果有多個動物以及有關它們的所有信息,這也將起作用)?
遍歷info.animals
屬性數組。 檢查您想要的條件。
const info = { animals: [ { number: 1, name: 'Zebra', colour: 'Black', code: '233' } ], } const list = info.animals; list.forEach(i => { if (i.colour === 'Black') { // do something console.log(true); } });
我認為以下三個選項中最有趣的是過濾器。 根據您的問題,您還需要有關黑色動物的所有信息。 因此,過濾器的結果是一個僅由黑色對象(動物)組成的新數組。
也許 some 或 every 對你也有用或有趣,它只返回 boolean。如果至少有一只或什至沒有一只動物有黑色,有些給出 true 或 false。 如果所有/並非所有動物都是黑色,則每個都給出真/假。
let info = { animals: [ { number: 1, name: 'Zebra', colour: 'Black', code: '233' } ], } // Returns all objects (animals) which have black colour const filter = info.animals.filter((obj)=> obj.colour === 'Black') // Returns true only if any or false if no animal has black colour const some = info.animals.some((obj)=> obj.colour === 'Black') // Returns true only if all or false if not all animals (objects) have black colour const every = info.animals.every((obj)=> obj.colour === 'Black') console.log("FILTER: " + filter.length + " animal(s) with black color. These are: ", filter ) console.log("SOME: " + "At least one black animal? ", some) console.log("EVERY: " + "Every animal in array has black colour? ",every)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.