I have this object that I need to filter it.
let data = JSON.parse(this.getDataFromArray).map((x: any) => x.isEnabled === true);
I need to get in "data" only ID's of values that "isEnabled" is true.
I have this object that I need to filter it.
let data = JSON.parse(this.getDataFromArray).map((x: any) => x.isEnabled === true);
I need to get in "data" only ID's of values that "isEnabled" is true.
Use Array.prototype.flatMap to achieve the result.
const dataArray = [
{ id: 1, name: "Alice", isEnabled: false },
{ id: 2, name: "Bob", isEnabled: true },
{ id: 3, name: "Charlie", isEnabled: true },
{ id: 4, name: "Dave", isEnabled: true },
{ id: 5, name: "Eve", isEnabled: false },
{ id: 6, name: "Frank", isEnabled: false },
];
let data = dataArray.flatMap(elm => elm.isEnabled ? [elm.id]: []);
console.log(data);
Please note that flatMap cannot be used in IE without a polyfill.
If you need IE support, use Array.prototype.forEach
const dataArray = [
{ id: 1, name: "Alice", isEnabled: false },
{ id: 2, name: "Bob", isEnabled: true },
{ id: 3, name: "Charlie", isEnabled: true },
{ id: 4, name: "Dave", isEnabled: true },
{ id: 5, name: "Eve", isEnabled: false },
{ id: 6, name: "Frank", isEnabled: false },
];
let data = [];
dataArray.forEach((elm) => {
if (elm.isEnabled) {
data.push(elm.id);
}
});
console.log(data);
map the result to just store the ID'sflatMapflatMap