簡體   English   中英

如何檢查數組中是否存在特定的Object元素(不是屬性)?

[英]How to check if specific Object element (not property) exists in an Array?

我嘗試使用.includes()方法,但無法正常工作。

data = [{
    "Global Quote": {
        "01. symbol": "TSLA",
        "02. open": "256.7100",
        "03. high": "260.4800",
        "04. low": "254.5100",
        "05. price": "260.1700",
        "06. volume": "4967930",
        "07. latest trading day": "2019-07-23",
        "08. previous close": "255.6800",
        "09. change": "4.4900",
        "10. change percent": "1.7561%"
    }
}]

data.includes("Global Quote") ? console.log("found") : console.log("not 
found");

每次控制台日志“未找到” ...

如果要檢查數組是否包含至少一個具有特定屬性的對象,則可以使用some

找到屬性的示例:

 var data = [{ "Global Quote": {} }] data.some(o => "Global Quote" in o) ? console.log("found") : console.log("not found "); 

找不到屬性的示例:

 var data = [{ "Not Global Quote": {}, }, { "Not Global Quote Also": {}, } ] data.some(o => "Global Quote" in o) ? console.log("found") : console.log("not found "); 

使用data.includes(...)檢查屬性時,您在對象中的位置不正確。

您必須更深入一層,並使用hasOwnProperty方法檢查該屬性。

您的代碼將如下所示:

const data = [{
    "Global Quote": {
        "01. symbol": "TSLA",
        "02. open": "256.7100",
        "03. high": "260.4800",
        "04. low": "254.5100",
        "05. price": "260.1700",
        "06. volume": "4967930",
        "07. latest trading day": "2019-07-23",
        "08. previous close": "255.6800",
        "09. change": "4.4900",
        "10. change percent": "1.7561%"
    }
}]


data[0].hasOwnProperty('Global Quote') ? console.log('found') : console.log('not found);

假設在該數組中將有多個對象,則可以使用some

 const data = [{ "Global Quote": { "01. symbol": "TSLA", "02. open": "256.7100", "03. high": "260.4800", "04. low": "254.5100", "05. price": "260.1700", "06. volume": "4967930", "07. latest trading day": "2019-07-23", "08. previous close": "255.6800", "09. change": "4.4900", "10. change percent": "1.7561%" } }]; function findKey(arr, key) { return arr.some(obj => Object.keys(obj)[0] === key); } console.log(findKey(data, 'Global Test')); console.log(findKey(data, 'Global Quote')); 

暫無
暫無

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

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