[英]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.