Если я правильно понимаю, вы хотите удалить что-либо из вашего объекта типа "строка". Вы можете использовать уменьшить для этого, да. Пример сокращения из MDN показывает базовое c поведение:
const array1 = [1, 2, 3, 4];
const reducer = (accumulator, currentValue) => accumulator + currentValue;
// 1 + 2 + 3 + 4
console.log(array1.reduce(reducer));
// expected output: 10
// 5 + 1 + 2 + 3 + 4
console.log(array1.reduce(reducer, 5));
// expected output: 15
Вы собираетесь перебирать массив (в вашем случае ключи объекта). Затем вы проведете каждую клавишу через функцию, передавая как аккумулятор, так и текущее значение l oop. Ваша обработка вернет обновленное значение к аккумулятору.
const keys = Object.keys(colors);
const reducer = (accumulator, currentValue) => {
if (typeof Object[currentValue] !== 'string') {
accumulator[currentValue] = Object[currentValue];
}
return accumulator;
}
keys.reduce(reducer, {});
Последний пустой объект, переданный для уменьшения, является начальным значением аккумулятора. Мы начнем с пустого объекта, потому что вы будете постепенно добавлять в него значения, если они не имеют тип string.