我需要编写一个函数来转换这样的对象:
const foodList = {fruit: {apples: true, pears: false, berries: true}, dairy: {milk: true, cheese: false}, vegetables: {}}
console.log(foodList)
进入这个:
const result = {fruit: ['apples', 'berries'], dairy: ['milk']}
console.log(result)
我正在尝试将嵌套值转换为 food 键等于 true 的数组。
最佳答案
您可以使用Object.entries
将对象转换为数组。使用reduce
对数组进行循环汇总。使用 Object.keys
和 filter
获取具有真实值的键。
const foodList = {"fruit":{"apples":true,"pears":false,"berries":true},"dairy":{"milk":true,"cheese":false},"vegetables":{}}
const result = Object.entries(foodList).reduce((c, [k, v]) => {
let t = Object.keys(v);
if (t.length) c[k] = t.filter(o => v[o]);
return c;
}, {});
console.log(result);
关于javascript - 如何将 JavaScript 对象值转换为数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56248632/