Soy nuevo en JS. Quiero incluir todos los objetos no disponibles de Value
durante el filtrado. En el siguiente código, aplico la condición Value >= 4 && Value < 6
. Quiero (Value >= 4 && Value < 6) || unavailable values of
Value `
var Annual = [{"Date":1998,"Value":6.5,"GDPAnn":9062800},{"Date":1999,"GDPAnn":9631200},{"Date":2000,"Value":4.1,"GDPAnn":10251000},{"Date":2001,"GDPAnn":10581900}] result = Annual.filter(function(v) { return v.Value >= 4 && v.Value < 6; }) console.log(result);
Agregue una condición !v.Value
a su expresión booleana
var Annual = [{"Date":1998,"Value":6.5,"GDPAnn":9062800},{"Date":1999,"GDPAnn":9631200},{"Date":2000,"Value":4.1,"GDPAnn":10251000},{"Date":2001,"GDPAnn":10581900}] result = Annual.filter(function(v) { return (v.Value >= 4 && v.Value < 6) || !v.Value; }) console.log(result);
Editar:
Como se dijo en un comentario a continuación, en el caso de que no considere que cualquier valor falso no es válido (como cero, cadena vacía, etc.), es posible que prefiera usar el método Object.prototype.hasOwnProperty
.
const Annual = [{"Date":1998,"Value":6.5,"GDPAnn":9062800},{"Date":1999,"GDPAnn":9631200},{"Date":2000,"Value":4.1,"GDPAnn":10251000},{"Date":2001,"GDPAnn":10581900}] const result = Annual.filter(function(v) { return (v.Value >= 4 && v.Value < 6) || !v.hasOwnProperty("Value"); }) console.log(result);
typeof
verifique si el valor no está definido, haga el trabajo también.
const Annual = [{"Date":1998,"Value":6.5,"GDPAnn":9062800},{"Date":1999,"GDPAnn":9631200},{"Date":2000,"Value":4.1,"GDPAnn":10251000},{"Date":2001,"GDPAnn":10581900}] result = Annual.filter((v) => v.Value >= 4 && v.Value < 6 || typeof v.Value === "undefined"); console.log('res',result);
use el método hasOwnProperty
para verificar si el objeto tiene una propiedad llamada Value
y negarla.
var Annual = [{"Date":1998,"Value":6.5,"GDPAnn":9062800},{"Date":1999,"GDPAnn":9631200},{"Date":2000,"Value":4.1,"GDPAnn":10251000},{"Date":2001,"GDPAnn":10581900}] result = Annual.filter(function(v) { return (v.Value >= 4 && v.Value < 6) || !v.hasOwnProperty('Value') }) console.log(result);