在 JSON 数组中按属性查找对象

Hie*_*yen 3 javascript json

我在获取 JSON 数据中的字符串时遇到问题。格式如下:

[
  {
    "name": "Alice",
    "age": "20"
  },
  {
    "id": "David",
    "last": "25"
  },
  {
    "id": "John",
    "last": "30"
  }
]
Run Code Online (Sandbox Code Playgroud)

有时它会一起改变位置,John从第三名变成第二名:

[
  {
    "name": "Alice",
    "age": "20"
  },
  {
    "name": "John",
    "age": "30"
  },
  {
    "name": "David",
    "age": "25"
  }
]
Run Code Online (Sandbox Code Playgroud)

如果我用来data[3].age获取 的John年龄,并且数据改变位置,我将得到David的年龄。

我可以使用任何方法来查找对象并name David获取age值吗?

Saj*_*ran 8

您可以使用array.find()方法,

var myArray = [
  {
    "name": "Alice",
    "age": "20"
  },
  {
    "name": "John",
    "age": "30"
  },
  {
    "name": "David",
    "age": "25"
  }
];

//Here you are passing the parameter name and getting the age 
//Find will get you the first matching object
var result = myArray.find(t=>t.name ==='John').age;
console.log(result);
Run Code Online (Sandbox Code Playgroud)


Fir*_*n26 5

最好使用array.filter()(更好的浏览器支持)

myArray.filter(function(el){return el.name == "John"})[0].age
Run Code Online (Sandbox Code Playgroud)