gpt4 book ai didi

javascript - 如何简化对象迭代代码?

转载 作者:行者123 更新时间:2023-11-29 23:21:56 25 4
gpt4 key购买 nike

有下一个对象:

2018: {
01: {
01: { key: value }
02: { key: value }
03: { key: value }
},
02: { ... }
},
2019: {
01: ...

如何简化用于将值放入每个天对象的下一个代码?

   for (let yearIndex in obj) {
const year = obj[yearIndex]
for (let monthIndex in year) {
const month = year[monthIndex]
for (let dayIndex in month) {
const day = month[dayIndex] {
console.log(day)
}
}
}
}

理想的结果可能是包含每一天对象的数组:

[{ key: value }, { key: value }, ...]

最佳答案

您可以通过检查递归调用的类型来扁平化对象。

function getFlat(object) {
return [].concat(
...Object
.values(object)
.map(value => value && typeof value === 'object' ? getFlat(value) : object)
);
}

var object = {2018: { '01': { '01': { key: 1 }, '02': { key: 2 }, '03': { key: 3 } }, '02': { '01': { key: 4 }, '02': { key: 5 }, '03': { key: 6 } } }, 2019: { '01': { '01': { key: 7 }, '02': { key: 8 }, '03': { key: 9 } } } };

console.log(getFlat(object));

关于javascript - 如何简化对象迭代代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50359140/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com