作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要编写一个函数来转换这样的对象:
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/
我是一名优秀的程序员,十分优秀!