// 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 []Tengo una matriz de objetos que estoy filtrando para devolver ciertos resultados según mis criterios de filtro. pero todo lo que hice fue devolver una matriz vacía.
La razón por la cual la salida de su matriz es diferente de su resultado esperado es su condición al regresar.
Utilice la operación OR(||) en lugar de AND(&&) .
Código correcto ->
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);