Javascript 从json循环创建多维数组,在组中连接特定值
尝试在json上循环并连接特定值,然后进一步循环Javascript 从json循环创建多维数组,在组中连接特定值,javascript,arrays,Javascript,Arrays,尝试在json上循环并连接特定值,然后进一步循环 var json = [ {title: "title1", type: "group1"} {name: "name1", type: "in"} {name: "name2", type: "out"} {name: "name3", type: "out"} {title: "title2", type: "group2"} {name: "name4", type: "out"} ]; v
var json = [
{title: "title1", type: "group1"}
{name: "name1", type: "in"}
{name: "name2", type: "out"}
{name: "name3", type: "out"}
{title: "title2", type: "group2"}
{name: "name4", type: "out"}
];
var obj = {},
count = 0;
for (var i=0; i < json.length; i++){
if('name' in json[i]){
var obj[count].push(json[i])
}else{
count++;
}
}
新创建的group2应该是
[
{title: "title1", type: "group1"},
{name: "name1", type: "in"},
{name: "name2", type: "out"},
{name: "name3", type: "out"}
]
[
{title: "title2", type: "group2"},
{name: "name4", type: "out"}
]
您可以使用
title
属性检查新组是否已启动。如果是,则将数组中的实际对象推送到结果集,否则将实际对象推送到最后一个数组
var数组=[{title:“title1”,type:“group1”},{name:“name1”,type:“in”},{name:“name2”,type:“out”},{name:“name3”,type:“out”},{title:“title2”,type:“group2”},{name:“name4”,type:“out”},
结果=数组.reduce(函数(r,o){
if(o中的“标题”){
r、 推挤([o]);
}否则{
r[r.length-1]。推(o);
}
返回r;
}, []);
控制台日志(结果)代码>
作为控制台包装{max height:100%!important;top:0;}
您的对象的格式无效您的问题不清楚。您的json也是无效的对象。请编辑你的帖子以使其更清晰。我编辑了代码。你编辑了代码,但语法仍然无效,问题也不再比以前更清晰了。如果您确实运行了您提供的内容,您希望它做什么?因此,您的问题是如何根据具有title
属性的项目的位置对数组中的项目进行分组?之后的每个项目直到下一个标题
项目包含在组中?