jquery - 在数组中创建带有循环的嵌套对象

标签 jquery

我尝试创建一个循环,每个迭代项都将添加到前一个迭代项的子项中。它将成为下一个的元素

 subnodes ={
        id : "value1",
        text:"value1",
        children:[]
    };
    temp ={};
    allnodes = ["value2","value3","value4",...]
    $.each(allnodes,function(index, value){

            newObject = {
                id : value,
                text:value,
                children:[]
            };
            subnodes.children.push(newObject)

    });
after loop result should be like this:
{
    id:"value1",
        text:"value1"
    children:[
        {
            id:"value2",
            text:"value2",
            children:[
                {
                    id:"value3",
                    text:"value3",
                    children[{
                        id:"value4",
                        text:"value4",
                        children[..]
                }]
        }
    ]
}
]
}

最佳答案

只需添加一个临时变量并将新数组添加到其中 -

subnodes = {
  id: "value1",
  text: "value1",
  children: []
};
temp = {};
allnodes = ["value2", "value3", "value4", "value4"]
var currentnode = subnodes;
$.each(allnodes, function(index, value) {
  newObject = {
    id: value,
    text: value,
    children: []
  }
  currentnode.children.push(newObject);
  currentnode = newObject;
});
$("#result").text(JSON.stringify(subnodes))
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="result"></div>

关于jquery - 在数组中创建带有循环的嵌套对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32580349/

相关文章:

javascript - jQuery animate() 通过左右滑动来隐藏和显示元素

javascript - jQuery 砌体示例对我不起作用

javascript - 使用 get 和 javascript/jquery 的复选框出现问题

javascript - JSONPath 或其他类似 XPath 的 JSON/Javascript 实用程序;或 Jquery JSON

javascript - 复选框选中的属性在 JQUERY 数据表列中不起作用

javascript - 显示禁用选项的更改列表

javascript - jquery 编写的函数无法正常运行

jquery - Chrome 上的旋转文本在动画时会晃动

javascript - 如何为 jQuery 选择器创建自定义函数

javascript - Chrome 扩展不会从弹出文件加载我的 JavaScript