Tengo una matriz de objetos y objetos en los que tengo que
verifique que el arrobj codey el obj valuesean iguales,
si la condición anterior está bien, entonces verifique el obj idtypey el arrobjcode
es el mismo o el valor obj.idtype existe, luego devuelve la lista de matrices o devuelve []
de objeto en javascript
var arrobj = [
{id:1, code: "brown", type: "FR"},
{id:3, code: "black", type: "SP"},
{id:4, code: "blue", type: "FR"}
]
var obj={
id:20, idtype: "SG", value: "blue"
}
Expected Output
// arrobj.code and obj.value matches, obj.idtype and arraobj.type not same
[]
var arrobj2 = [
{id:1, code: "brown", type: "FR"},
{id:3, code: "green", type: "SP"},
{id:4, code: "blue", type: "FR"},
{id:5, code: "blue", type: "SG"}
]
var obj2={
id:20, idtype: "SG", value: "blue"
}
Expected Output
// arrobj.code and obj.value matches, obj.idtype value exists in arraobj.type
[
{id:4, code: "blue", type: "FR"},
{id:5, code: "blue", type: "SG"}
]
Solución del problema
Si desea filtrar una matriz de objetos de JavaScript ( código: igual y tipo: no igual ), puede usar el método de filtro.
const sampleCars1 = [
{id: 1, code: "brown", type: "FR"},
{id: 2, code: "black", type: "SP"},
{id: 3, code: "green", type: "Y1"},
{id: 4, code: "blue", type: "FR"}
];
const sampleCars2 = [
{id: 1, code: "brown", type: "FR"},
{id: 2, code: "black", type: "X1"},
{id: 3, code: "green", type: "SP"},
{id: 4, code: "blue", type: "FR"},
{id: 5, code: "blue", type: "SG"},
{id: 6, code: "blue", type: "A1"},
{id: 7, code: "blue", type: "A2"}
];
const filterCars = (cars, desiredCode, undesiredType) => {
return cars.filter(item =>
item.code === desiredCode && item.type!== undesiredType);
}
const filterSampleLists = () => {
const filter = {id:20, type: "SG", code: "blue"};
const filteredSample1 = filterCars(sampleCars1, filter.code, filter.type);
const filteredSample2 = filterCars(sampleCars2, filter.code, filter.type);
console.log(filteredSample1);
console.log(filteredSample2);
}
filterSampleLists();
No hay comentarios:
Publicar un comentario