Получить общее количество пустых значений в объекте

пожалуйста, мне нужна помощь с этим

const obj = {a = "", b = "good", c=false, d = "", e = "excellent"}

Я просто хочу знать, что все пусто и ложно. где мой ответ должен быть 3.

const obj = {a = "", b = "good", c=false, d = "", e = "excellent"}

for (let k in obj) {
  if (obj[k] === '' || obj[k] === false) {
    //console.info(k);

  }
}

Любые указатели будут очень признательны

Спасибо

Вам необходимо исправить синтаксис литерала вашего объекта. Затем вам нужно добавить счетчик, который будет увеличиваться там, где находится ваш вызов console.info().

Ray Wallace 14.06.2024 05:57

То, что вы показываете, недействительно JS. Но если у вас есть действительный JS, хорошим местом для начала будет Object.values(obj).reduce(...) (или, если вы также хотите что-то сделать с именами ключей, Object.entries вместо Object.values).

Mike 'Pomax' Kamermans 14.06.2024 06:07
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
2
58
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

Вы можете просто создать массив и поместить в него пустые ключи. Таким образом, в конце программы длина массива будет равна количеству пустых элементов.

const obj = {a:"", b:"good", c:false, d:"", e:"excellent"}
const emptyElements = [] // an array containing all the keys of the properties that are empty
for (let key in obj) {
  if (obj[key] === '' || obj[key] === false) {
    // Key is empty
    emptyElements.push(k)
  }
}
console.info(emptyElements.length) // the number of empty elements in the object

Или вы можете просто добавить переменную, которая увеличивается всякий раз, когда обнаруживает пустое значение.

const obj = {a:"", b:"good", c:false, d:"", e:"excellent"}
let nEmptyElements = 0 // Number of empty elements
for (let key in obj) {
  if (obj[key] === '' || obj[key] === false) {
    // Key is empty
    nEmptyElements += 1 // Increment the number of empty element
  }
}
console.info(nEmptyElements) // the number of empty elements in the object

Надеюсь это поможет

const obj = {a:"", b:"good", c:false, d:"", e:"excellent"};

let count = 0; 

for (let k in obj) {
  if (obj[k] === '' || obj[k] === false) {
    count++; 
  }
}

console.info(count); 
Ответ принят как подходящий

Вы можете reduce переиграть Object.values.

const obj = {a: "", b: "good", c: false, d: "", e: "excellent"};
let falsyValuesCount = Object.values(obj).reduce((a, c) => a + !c, 0);
console.info(falsyValuesCount);

Чтобы получить фактические значения, которые были ложными, вместо этого используйте Array#filter.

Вот один лайнер для архивирования вашего набора результатов с помощью Array.Prototype.filter:

const obj = {a: "", b: "good", c: false, d: "", e: "excellent"};

const resultArray = Object.values(obj).filter(value => value === '' || value === false);

console.info("Count :", resultArray.length); 
console.info("Array values :", JSON.stringify(resultArray));

Подробнее об операции Array.Prototype.filter читайте здесь.

Другие вопросы по теме