简体   繁体   中英

Find object by property in JSON array

I have problem with get string in JSON data. Format as below:

[
  {
    "name": "Alice",
    "age": "20"
  },
  {
    "id": "David",
    "last": "25"
  },
  {
    "id": "John",
    "last": "30"
  }
]

Sometime it changes position together, John from 3rd place go to 2nd place:

[
  {
    "name": "Alice",
    "age": "20"
  },
  {
    "name": "John",
    "age": "30"
  },
  {
    "name": "David",
    "age": "25"
  }
]

If i use data[3].age to get John 's age, and data change position, I will get David 's age.

Is there any method I can use to find the object with name David and get the age value?

You can use array.find() method as,

 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); 

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

myArray.filter(function(el){return el.name == "John"})[0].age

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM