I have the following arrangement:
let arreglo=[{'class':1,'var':1, 'valor':50},
{'class':3,'var':2, 'valor':150},
{'class':1,'var':2, 'valor':200},
{'class':1,'var':1, 'valor':60},
{'class':3,'var':2, 'valor':520},
{'class':1,'var':2, 'valor':250}];
I want to discriminate by sorting according to the attribute 'class'
[{'class':1,'var':1, 'valor':50},
{'class':1,'var':2, 'valor':200},
{'class':1,'var':1, 'valor':50},
{'class':1,'var':2, 'valor':250}]
[{'class':3,'var':2, 'valor':150},
{'class':3,'var':2, 'valor':520}];
then discriminate according to the attribute 'var' to obtain
[{'class':1,'var':1, 'valor':50},
{'class':1,'var':1, 'valor':50},
{'class':1,'var':2, 'valor':200},
{'class':1,'var':2, 'valor':250}]
[{'class':3,'var':2, 'valor':150},
{'class':3,'var':2, 'valor':520}];
my code is the following but what I do is discriminate and then I would have to join the arrangements, I want a more efficient way.
let arreglo = [{'class': 1,'var': 1,'valor': 50},
{'class': 3, 'var': 2,'valor': 150 },
{'class': 1, 'var': 2,'valor': 200 },
{'class': 1, 'var': 1,'valor': 60 },
{'class': 3, 'var': 2,'valor': 520 },
{'class': 1, 'var': 2,'valor': 250 }
];
function filtrarSegunVariable(arreglo, variable, condicion) {
return arreglo.filter(function(x) {
if (x[variable] === condicion) {
return x;
}
})
}
let class1 = filtrarSegunVariable(arreglo, 'class', 1);
let class3 = filtrarSegunVariable(arreglo, 'class', 3);
console.log(filtrarSegunVariable(class1, 'var', 1));
console.log(filtrarSegunVariable(class1, 'var', 2));
console.log(filtrarSegunVariable(class3, 'var', 1));
console.log(filtrarSegunVariable(class3, 'var', 2));
note: values 1, 2, 3 must be strings