-3

How to find all id's to an array from array of objects. Here through normal for loop I can able to get but using ECMA new features by findAll etc..how to get?

let items = [
      {id: 28, name: "Action", isSelected: true},
      {id: 10770, name: "TV Movie", isSelected: false},
      {id: 53, name: "Thriller", isSelected: true},
      {id: 10752, name: "War", isSelected: false},
      {id: 37, name: "Western", isSelected: true}
    ]

Here I want to find all id's based on isSelected is true.

Roy
  • 711
  • 4
  • 18
  • 35
  • Use `.filter()`, so something like `items.filter(({isSelected}) => isSelected);` should give you what you're after if I understand your question correctly – Nick Parsons Sep 30 '19 at 07:04

4 Answers4

1

Using filter and map

let items = [
      {id: 28, name: "Action", isSelected: true},
      {id: 10770, name: "TV Movie", isSelected: false},
      {id: 53, name: "Thriller", isSelected: true},
      {id: 10752, name: "War", isSelected: false},
      {id: 37, name: "Western", isSelected: true}
    ]
    console.log(items.filter(function(e){return e.isSelected}).map(function(e){
    return e.id
    }))
ellipsis
  • 11,688
  • 2
  • 14
  • 33
1

Try this:

let items = [
  { id: 28, name: "Action", isSelected: true },
  { id: 10770, name: "TV Movie", isSelected: false },
  { id: 53, name: "Thriller", isSelected: true },
  { id: 10752, name: "War", isSelected: false },
  { id: 37, name: "Western", isSelected: true }
]
let res = items.filter(({ isSelected }) => isSelected).map(({id}) => id);
console.log(res);
Saurabh Agrawal
  • 7,230
  • 2
  • 22
  • 46
1

Simple map function will do your job

let items = [
      {id: 28, name: "Action", isSelected: true},
      {id: 10770, name: "TV Movie", isSelected: false},
      {id: 53, name: "Thriller", isSelected: true},
      {id: 10752, name: "War", isSelected: false},
      {id: 37, name: "Western", isSelected: true}
]

items.map(item => console.log(item.id))
sayalok
  • 874
  • 3
  • 16
  • 30
1

First filter the array to get the objects with isSelected as true then use map() to get the id of those objects:

let items = [
      {id: 28, name: "Action", isSelected: true},
      {id: 10770, name: "TV Movie", isSelected: false},
      {id: 53, name: "Thriller", isSelected: true},
      {id: 10752, name: "War", isSelected: false},
      {id: 37, name: "Western", isSelected: true}
];
let res = items.filter(({isSelected}) => isSelected).map(({id}) => id);
console.log(res);
Ankit Agarwal
  • 29,658
  • 5
  • 35
  • 59