gpt4 book ai didi

javascript - 递归地从对象创建一个url数组 - javascript

转载 作者:行者123 更新时间:2023-12-02 08:04:11 26 4
gpt4 key购买 nike

我已经弄清楚了如何基于数组创建对象,现在我正试图了解如何从该对象构建一个数组。

与对象

{ 
social: {
children: {
swipes: {
children: {
women: null,
men: null
}
}
}
},

upgrade: {
children: {
premium: null
}
}
}

如何创建一个数组

['/social/swipes/women', '/social/swipes/men', '/upgrade/premium']

?

到目前为止,我只是编写了一个函数来遍历对象

let iterate = obj => {
const urls = [];

for (let k in obj) {
if (obj[k] !== null && obj[k].hasOwnProperty('children')) {
console.log('iterating through key: ', k)
iterate(obj[k].children)
} else {
console.log(k, 'is null')
}
}
}

最佳答案

我会为此使用生成器:

 function* paths(obj, previous = "") {
for(const [key, value] of Object.entries(obj)) {
if(typeof value === "object" && value !== null) {
yield* paths(value.children, previous + "/" + key);
} else {
yield previous + "/" + key;
}
}
}

这可以称为:

 console.log([...paths({ social: { /*...*/ } })]);

关于javascript - 递归地从对象创建一个url数组 - javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53503778/

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