values parse falsy ejemplo booleanos javascript arrays angularjs arraylist

javascript - parse - Eliminar valores falsos en el objeto



if boolean javascript (5)

Acabo de crear una solución a su problema en JSBin: Demo de trabajo

Por favor encuentre abajo el código:

var myObj={105:true,183:false,108:true,106:false}; var myArray = []; function RemoveFalseAndTransformToArray () { for (var key in myObj) { if(myObj[key] === false) { delete myObj[key]; } else { myArray.push(key); } } } RemoveFalseAndTransformToArray(); console.log("myObj: ", myObj); console.log("myArray: ", myArray); // result = ["105", "108"]

Por favor avísame si tienes alguna pregunta.

El problema que estoy enfrentando es la eliminación de los valores en el objeto que tiene la propiedad false Aquí está el objeto

var myObj={105:true,183:false,108:true,106:false}

Puedo obtener los valores en una matriz usando la siguiente lógica:

Object.keys(myObj) da ["105","183","108","106"] Pero necesito una manera de eliminar los valores que tienen la propiedad false y generar como ["105",108"] . Me puede ayudar ?


Necesita iterar sobre el objeto utilizando for...in bucle

var myObj={105:true,183:false,108:true,106:false} for(var key in myObj){ if(myObj.hasOwnProperty(key) && myObj[key] == false){ delete myObj[key]; } } console.log(JSON.stringify(myObj)) //{"105":true,"108":true} console.log(Object.keys(myObj)) //["105", "108"]


Para eliminar esas propiedades, puede usar este algoritmo:

for (k in myObj) { if (myObj.hasOwnProperty(k) && myObj[k] === false) { delete myObj[k]; } }

Si solo está interesado en las claves de valores no false , puede usar:

var keys = Object.keys(myObj).filter(function (k) { return myObj[k] !== false; });

La hasOwnProperty() es necesaria porque los objetos pueden contener propiedades que no son del usuario (como prototype ) con las que realmente no desea meterse.


Usted tiene las llaves del objeto en una matriz. Ejecuta el filtro sobre él.

var myObj={105:true,183:false,108:true,106:false}; var result = Object.keys(myObj).filter(function(x) { return myObj[x] !== false; }); // result = ["105", "108"]


También puede usar este paquete de NPM o importar este objeto de código abierto -clean que limpia todas las propiedades de los objetos que contienen un valor de falsy y devuelve un nuevo objeto sin ellos.

Ejemplo:

clean({ foo: null, bar: ''foo'' }) // => { bar: ''foo'' }