繁体   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