I have an array of objects like below
0: {Id: 1, name: 'xyz', pqID: 10, pqType: null}
1: {Id: 2, name: 'abc', pqID: 15, pqType: null}
2: {Id: 3, name: 'wer', pqID: 16, pqType: null}
3: {Id: 4, name: 'uyt', pqID: 18, pqType: null}
4: {Id: 5, name: 'qwe', pqID: 22, pqType: null}
5: {Id: 6, name: 'ert', pqID: 25, pqType: null}
I want objects of pqID and 10 and 15. Below is what I am trying which is giving empty array.
const newUsers = arr.filter(
(user) =>
user.pqID == 10 && user.pqID == 15
);
console.log(newUsers);
CodePudding user response:
Note the ||
operator
var arr =
[{Id: 1, name: 'xyz', pqID: 10, pqType: null},
{Id: 2, name: 'abc', pqID: 15, pqType: null},
{Id: 3, name: 'wer', pqID: 16, pqType: null},
{Id: 4, name: 'uyt', pqID: 18, pqType: null},
{Id: 5, name: 'qwe', pqID: 22, pqType: null},
{Id: 6, name: 'ert', pqID: 25, pqType: null}]
const newUsers = arr.filter(
(user) =>
user.pqID == 10 || user.pqID == 15 // note ||
);
console.log(newUsers)
<iframe name="sif1" sandbox="allow-forms allow-modals allow-scripts" frameborder="0"></iframe>
CodePudding user response:
You could try that, with full array function syntax:
const newUsers = arr.filter(
(user) => {return [10, 15].includes(user.pqID)}
);
Or the minified version, without parentheses and curly brackets:
const newUsers = arr.filter(user => [10, 15].includes(user.pqID));