在这个数组中,我想通过查询属性id
找到对象的name
。鉴于我知道name
是NV
,我怎样才能获得id
?
我已经尝试过不同的循环和GetObject
之类的其他东西,但它没有给出任何回报。
{
"items": [
{
"id": 1,
"name": "BV",
},
{
"id": 2,
"name": "NV"
}
],
}
答案 0 :(得分:0)
只需使用array.find
:
var data = {
"items": [{
"id": 1,
"name": "BV",
},
{
"id": 2,
"name": "NV"
}
],
};
console.log(data.items.find(item => item.name == "NV").id)

答案 1 :(得分:0)
用JSON编程
什么? JSON 总是只是一个字符串 - 它是各种形式数据的字符串表示;仅此而已。
如果您有一些JSON并且想要从中读取某些数据或对其进行操作,首先您需要将JSON转换为可用数据
但在此之前你必须修复你的BROKEN JSON - 你有无效的尾随逗号
var brokenjson = '{"items": [{"id": 1, "name": "BV",},{"id": 2,"name": "NV"}],}'
var goodjson = '{"items": [{"id": 1, "name": "BV"},{"id": 2,"name": "NV"}]}'
现在您的JSON已修复,我们可以获得您正在寻找的内容
var json = '{"items": [{"id": 1, "name": "BV"},{"id": 2,"name": "NV"}]}'
var data = JSON.parse(json)
// get id from items where name is 'NV'
console.log(data.items.find(x => x.name === 'NV').id) // 2
如果您没有Array.prototype.find
,请将其设为
Array.prototype.find = function find (f, context) {
for (var i = 0; i < this.length; i++)
if (f.call(context || window, this[i], i, this))
return this[i]
}
答案 2 :(得分:0)