El propósito de la función es obtener falso cuando todas las answers están vacías. Actualmente, de alguna manera se obtiene ** falso cuando solo una answers está vacía y el resto tiene datos dentro.
¿Cuál es la mejor manera de verificar que todas las answers estén vacías o no? No importa que algunos tengan datos y otros no. Sólo quiero ver todo vacío o no.
const questions = [{ "answers": [{ "value": "Browns", "selected": false, }, { "value": "Oranges", "selected": false, }, { "value": "Purples", "selected": false, } ], "info": "", "type": "DESELECT", "lastUpdated": "2021-11-01T22:50:28.359" }, { "answers": [], "info": "", "type": "DESELECT", "lastUpdated": "2021-11-01T22:50:35.392" }, { "answers": [{ "value": "AnimalPrints", "selected": false, }, { "value": "BigLogos", "selected": true, }, { "value": "Floral", "selected": false, } ], "info": "", "type": "DESELECT", "lastUpdated": "2021-11-01T22:50:43.883" } ]; console.clear(); console.log("------------ES6------------"); const es6Result = questions.every((item) => !_.isEmpty(item.answers)); console.log(es6Result); const lodashResult = _.every(questions, !_.isEmpty('answers')); console.log("------------Lodash------------"); console.log(lodashResult); <script src="https://cdn.jsdelivr.net/npm/lodash@4.17.21/lodash.min.js"></script>Podría usar .some() , se volverá true si al menos 1 answers no está vacía, y obtendrá false si todas las answers están vacías
const es6Result = questions.some((item) => item.answers.length);Creo que la lógica que describe requiere:
const lodashResult = !_.every(questions, _.isEmpty('answers'));o
const es6Result = !questions.every((item) => _.isEmpty(item.answers)); const questions = [{ "answers": [{ "value": "Browns", "selected": false, }, { "value": "Oranges", "selected": false, }, { "value": "Purples", "selected": false, } ], "info": "", "type": "DESELECT", "lastUpdated": "2021-11-01T22:50:28.359" }, { "answers": [], "info": "", "type": "DESELECT", "lastUpdated": "2021-11-01T22:50:35.392" }, { "answers": [{ "value": "AnimalPrints", "selected": false, }, { "value": "BigLogos", "selected": true, }, { "value": "Floral", "selected": false, } ], "info": "", "type": "DESELECT", "lastUpdated": "2021-11-01T22:50:43.883" } ]; console.clear(); console.log("------------ES6------------"); const es6Result = questions.map((item) => _.isEmpty(item.answers)).indexOf(true) > -1; console.log(es6Result); <script src="https://cdn.jsdelivr.net/npm/lodash@4.17.21/lodash.min.js"></script>