gpt4 book ai didi

javascript - 通过javascript将数组转换为json对象

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

我坚持要解决这个问题。
转换下面的数组

var input = [
'animal/mammal/dog',
'animal/mammal/cat/tiger',
'animal/mammal/cat/lion',
'animal/mammal/elephant',
'animal/reptile',
'plant/sunflower'
]

到 json 对象
var expectedResult = {
"animal": {
"mammal": {
"dog": true,
"cat": {
"tiger": true,
"lion": true
},
"elephant": true
},
"reptile": true
},
"plant": {
"sunflower": true
}
}

我可以申请哪种数据结构和算法?
谢谢

最佳答案

你需要先split要转换为数组的每个元素

使用 reverse reduce方法,您可以将它们转换为对象。

最后一步是合并这些对象。
Lodash.js合并方法是合并它们的一种方法。

var input = ['animal/mammal/dog','animal/mammal/cat/tiger','animal/mammal/cat/lion', 'animal/mammal/elephant','animal/reptile', 'plant/sunflower']
var finalbyLodash={}
input.forEach(x=>{
const keys = x.split("/");
const result = keys.reverse().reduce((res, key) => ({[key]: res}), true);
finalbyLodash = _.merge({}, finalbyLodash, result);
});
console.log(finalbyLodash);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.10/lodash.js"></script>

关于javascript - 通过javascript将数组转换为json对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61987723/

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