我通过调用API得到响应。就是这样。
[{"id":213132},{"id":241132},{"id":465413},{"id":546351},{"id":164854,"data":[{"rate" : 20}]},
{"id":564656,"data":[{"rate" : 40}]}]
如何检查特定ID是否存在键 data
?
任何帮助都会很棒。 谢谢。
答案 0 :(得分:3)
您可以首先使用raise DistributionNotFound(req, requirers) pkg_resources.DistributionNotFound: The 'supervisor==3.2.0' distribution was not found and is required by the application
获取具有所需ID的对象,然后检查属性Array.find()
是否未定义
data
答案 1 :(得分:2)
let id = 164854;
result = myArray.filter((val) => {return val.id === id && val.data;});
答案 2 :(得分:1)
您可以使用filter
let data = [{"id":213132},{"id":241132},{"id":465413},{"id":546351},{"id":164854,"data":[{"rate" : 20}]} ];
function hasData(key) { return !!data.filter(x=> x.id==key)[0].data }
console.log(hasData("213132"))
console.log(hasData("164854"))
答案 3 :(得分:1)
您可以使用“ Array.find”检查id是否存在,然后可以使用“ !!”将结果转换为布尔值。
var arr = [{"id":213132},{"id":241132},{"id":465413},{"id":546351},{"id":164854,"data":[{"rate" : 20}]}]
function doesDataExist(id) {
return !!arr.find(d => d.id == id).data
}
console.log(doesDataExist(164854))
console.log(doesDataExist(213132))
答案 4 :(得分:1)
您可以简单地使用Array.some(),它将根据条件返回布尔值。
let arr= [{"id":213132},{"id":241132},{"id":465413},{"id":546351, "data":[{"id":1}]},{"id":164854}];
let id = 546351;
console.log(arr.some(obj => obj.id == id && !!obj.data));
id = 213132;
console.log(arr.some(obj => obj.id == id && !!obj.data));
答案 5 :(得分:1)
您可以使用findIndex函数查找特定的ID
let id = 241132;
let index = arr.findIndex((data)=> data.id == id)
index==-1 ? console.log("not find") : console.log("find index=>"+index)