Tengo el siguiente código que funciona bien, que verifica si hay un valor null y, si se encuentra un valor nulo, deja de verificar e imprime un registro de la consola.
const data = [ { "filename": "deletetestOne.js", "answer1": "Y", "answer2": null, "riskLevel1": null, "description": "" }, { "filename": "deletetestThird.js", "answer1": null, "answer2": "Y", "riskLevel1": "1", "description": "" } ] const isNull = (val) => val === null; const hasNull = data.some(function (item) { return Object.values(item).some(isNull); }); console.log(hasNull ? "Some of the values are null": "All good"); El código anterior se acaba de incluir para mostrar cómo estoy comprobando valores null que no están relacionados con lo que estoy buscando. Mis nuevos datos se ven como se muestra a continuación sin ningún valor nulo:
Ahora tengo datos ligeramente diferentes que ya no contienen valores null :
const data = [ { "filename": "deletetestOne.js", "answer1": "Y", "answer2": "N", "riskLevel1": "2", "description": "" }, { "filename": "deletetestThird.js", "answer1": "N", "answer2": "N", "riskLevel1": "1", "description": "" } ] Y quiero ejecutar una verificación específica de los datos anteriores en el elemento clave answer1 de los datos. Si encuentra Y , entonces debería dejar de verificar; de lo contrario, continúe imprimiendo valores de answer1 , que probablemente será N
Mi requisito:
Quiero verificar si el elemento clave answer1 contiene Y y, si lo hace, quiero salir del bucle y simplemente imprimir un registro de la consola que diga Found Y in answer1 . Si no es así, puedo imprimir un registro de la consola que diga Didn't find Y in answer1
Simplemente use .some() y verifique que el valor de su propiedad "answer1" sea "Y"
const data1 = [{"answer1": "Y"}, {"answer1": "N"}]; const data2 = [{"answer1": "N"}, {"answer1": "N"}]; const someIsY = (arr) => arr.some(ob => ob.answer1 === "Y"); console.log(someIsY(data1)) // true console.log(someIsY(data2)) // falsepara obtener su uso específico de "registro":
const report = someIsY(data1) ? "Found Y in answer1" : "Didn't find Y in answer1"; console.log(report); // "Found Y in answer1"para que su función sea más flexible en el uso coincidente:
const data1 = [{"answer1": "Y"}, {"answer1": "N"}]; const data2 = [{"answer1": "N"}, {"answer1": "N"}]; const somePropVal = (arr, prop, val) => arr.some(ob => ob[prop] === val); console.log(somePropVal(data1, "answer1", "Y")) // true console.log(somePropVal(data2, "answer1", "Y")) // false console.log(somePropVal(data2, "answer1", "N")) // true