Polyfill para Object.Value para volver afirmación Truthy

votos
0

Mi tarea original era crear una función que devuelve un valor booleano si mi objeto de datos contiene un valor Truthy.

No me importa qué valor o clave es Truthy, solo que los datos contienen un valor Truthy.

var fruits = { apples: false, oranges: true, bananas: true }

Cuando la iteración en este objeto el retorno debe ser trueporque hay truevalores dentro.

La siguiente función hizo el trabajo:

return Object.values(fruits).some(function(k) {
    return k;
});

Sin embargo no puedo usar Object.valueni el array.somedebido a la compatibilidad de IE

El Polyfill sugerido es utilizar .mapen lugar de obtener cada valor, sin embargo, pero el siguiente paso es la eliminación .some()- He intentado usar .filter()pero esto me lleva de nuevo al problema original que devuelve el keyque es Truthy no simplemente una afirmación de que un valor Truthy existe en la databaset

Publicado el 27/11/2018 a las 16:53
fuente por usuario
En otros idiomas...                            


2 respuestas

votos
3

Si necesita viejo estilo de JavaScript, a continuación, ir a por una llanura forde bucle:

function hasTruthy(fruits) {
    for (var key in fruits) {
        if (fruits.hasOwnProperty(key) && fruits[key]) return true;
    }
    return false;
}
Respondida el 27/11/2018 a las 16:57
fuente por usuario

votos
0

Ni siquiera es necesario que hasOwnPropertycheque.

var fruits = {
  apples: false,
  oranges: true,
  bananas: true
}


function hasTruthyValue(obj) {
  for (let key in obj) {
    if (obj[key]) {
      return true;
    }
  }
}

console.log(hasTruthyValue(fruits)); //true

Respondida el 27/11/2018 a las 17:01
fuente por usuario

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more