gpt4 book ai didi

javascript - 使用 JS 将嵌套对象的键展平为数组

转载 作者:行者123 更新时间:2023-11-28 01:15:11 25 4
gpt4 key购买 nike

我有一个对象,我想将“树”的每个“分支”作为数组获取。 (也请随意纠正我的术语!)我所拥有的如下:

var features = {
"f": {
"t": "100",
"f": {
"i": ['150'],
"b": ['300'],
"f": {
"k": 100
}
},
"l": ['255']
},
"c": {
"s": {
"t": ["100"]
},
"t": "100"
}
};

我想将其解析为以下结果,以便我可以再次迭代它并将其传递给另一个函数。

var result = [
"ffi",
"fffk",
"fl",
"ct"
]

到目前为止我所拥有的is on JS Bin here 。任何正确方向的帮助或指示将不胜感激!谢谢!

最佳答案

你可以试试我的un-flatten-tree npm 模块将树转换为分支列表。另请注意 lodash 中的“ map ”用于对象遍历。

function walk(tree) {
return _.map(tree, function (v, k) {
return {
name: k,
items: (typeof v !== 'object' || v instanceof Array) ? [] : walk(v)
};
});
}

function getChildNodes(node) {
return node.items.map(function (item) {
return {
name: node.name + item.name,
items: item.items
};
});
}

var result = uft.flatten(walk(features), getChildNodes)
.filter(function (node) { return node.items.length === 0; })
.map(function (node) { return node.name; });

实例:

https://jsfiddle.net/iyegoroff/ut3bz6oc/

关于javascript - 使用 JS 将嵌套对象的键展平为数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23919887/

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