Reputation: 63
// console.log("Testing Merging of data");
const Array_1 = [{ class_1: 4, HeadTeacher: "Mrs Joe" }];
const Array_2 = [{ class_1: 10, HeadTeacher: "Loveth" }];
const Array_3 = [{ class_1: 1, HeadTeacher: "Itunu" }];
const Array_4 = [{ class_1: 1, HeadTeacher: "John" }];
const result = [...Array_1, ...Array_2, ...Array_3];
const Final = result.filter((item, index) => {
return item.class_1 === 10 && item.class_1 === 1;
});
console.log(Final);
// Expected result
// [{ class_1: 1, HeadTeacher: "Itunu" }, { class_1: 1, HeadTeacher: "John" }; ];
// Out put ; Empty array []
I have an array of objects which I'm filtering to return certain results based on my filter criteria. but all I did was just returning an empty array.
Upvotes: 1
Views: 104
Reputation: 185
Use OR(||) operation instead of AND(&&).
Correct Code ->
const Array_1 = [{ class_1: 4, HeadTeacher: "Mrs Joe" }];
const Array_2 = [{ class_1: 10, HeadTeacher: "Loveth" }];
const Array_3 = [{ class_1: 1, HeadTeacher: "Itunu" }];
const Array_4 = [{ class_1: 1, HeadTeacher: "John" }];
const result = [...Array_1, ...Array_2, ...Array_3];
const Final = result.filter((item, index) => {
return item.class_1 === 10 || item.class_1 === 1;
});
console.log(Final);
Upvotes: 2
Reputation: 280
The reason why your array output is different from your expected result is your condition when returning.
Upvotes: 4