简体   繁体   中英

How to filter an array of JavaScript objects?

Lets say I have the following object

var ob = [
  {
    "id": 1,
    "comment": "some comment",
    "hidden": 0,
  },
  {
    "id": 2,
    "comment": "some comment",
    "hidden": 1,
  },
  {
    "id": 3,
    "comment": "some comment",
    "hidden": 1,
  },
  {
    "id": 4,
    "comment": "some comment",
    "hidden": 0,
  }
]

How can I filter this to say for example return all where hidden = 1

Cheers

Use Array#filter :

 let arr = [ { "id": 1, "comment": "some comment", "hidden": 0, }, { "id": 2, "comment": "some comment", "hidden": 1, }, { "id": 3, "comment": "some comment", "hidden": 1, }, { "id": 4, "comment": "some comment", "hidden": 0, } ]; let res = arr.filter(x => x.hidden === 1); // or arr.filter(({hidden}) => hidden === 1); console.log(res);

 var ob = [ { "id": 1, "comment": "some comment", "hidden": 0, }, { "id": 2, "comment": "some comment", "hidden": 1, }, { "id": 3, "comment": "some comment", "hidden": 1, }, { "id": 4, "comment": "some comment", "hidden": 0, }, { "id": 5, "comment": "some comment", "hidden": 2, } ] let result = ob.filter(x => x.hidden === 1); console.log("result for hidden properties 1",result) //Or you can use other condision. Just think like conditional operator but this is kind of different thing let result2 = ob.filter(x => x.hidden === 2); console.log("result for hidden properties 2",result2) //This condition only pass when hidden properties values 2. otherwise It won't filter and won't give your expected output , or result whatever you say.

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