Работа с reduce
Начал изучать как работает reduce, но столкнулся с одной проблемой и не могу понять как её решить. Хочу написать функцию, которая принимает объект, как аргумент и возвращает новый массив с именами ключей - значение, которых false.
Например:
Input : { isActive: false, isPilot: true };
Output : ['isActive']
Написал вот такой вот код:
function test(obj) {
return Object.entries(obj)
.reduce((acc, [key, value]) => {
if (value === false) acc = [key]
return acc;
}, []);
}
Но моя функция, показывает только последний ключ с false, подскажите правильное направление для решения.
Ответы (2 шт):
Автор решения: Danil Apsadikov
→ Ссылка
let obj = {
isActive: false,
isPilot: true
};
function test(obj) {
return Object.entries(obj)
.reduce((acc, [key, value]) => {
if (value === false) acc.push(key);
return acc;
}, []);
}
console.log(test(obj));
Автор решения: Grundy
→ Ссылка
acc - это массив. Для добавления элемента в массив можно использовать метод .push
var o = {
isActive: false,
isPilot: true
};
function test(obj) {
return Object.entries(obj)
.reduce((acc, [key, value]) => {
if (value === false) acc.push(key);
return acc;
}, []);
}
console.log(test(o));