json对象中缺少对象循环
Missing object loop through json object
http://jsfiddle.net/ow9g9y0d/
var item = {
"slots": [{
"id": "3",
"name": "a"
}, {
"id": "1",
"name": "b"
}, {
"id": "2",
"name": "b"
}]
};
var data = {};
item.slots.forEach(function(i){
if( i["name"] == "b"){
data["b"] = i;
}else{
data["a"] = i;
}
});
console.log(data);
我有两个项目的名称不等于b,但它们只出现在"a"下一次,那里发生了什么?
试试这个
var item = {
"slots": [{
"id": "3",
"name": "a"
}, {
"id": "1",
"name": "b"
}, {
"id": "2",
"name": "b"
}]
};
var data = {}, temp;
item.slots.forEach(function(i){
var temp = data[i["name"]];
if (temp) {
if (!(temp instanceof Array)) {
data[i["name"]] = [temp];
}
data[i["name"]].push(i);
} else {
data[i["name"]] = i;
}
});
console.log(data);
您可以执行类似的操作
var item = {
"slots": [{
"id": "3",
"name": "a"
}, {
"id": "1",
"name": "b"
}, {
"id": "2",
"name": "b"
}, {
"id": "4",
"name": "b"
}]
};
var data = {};
var ctr = 0;
item.slots.forEach(function(i) {
if (i.name == "b") {
(!(data.b == undefined)) ? ctr++ : data.b = {};
data.b["" + ctr] = i;
} else {
data.a = i;
}
});
console.log(data);
document.body.innerHTML = JSON.stringify(data.b);
试试这个
http://jsfiddle.net/RamVanamali/4611adk0/
var item = {
"slots": [{
"id": "3",
"name": "a"
}, {
"id": "1",
"name": "b"
}, {
"id": "2",
"name": "b"
}]
};
var arr = [];
item.slots.forEach(function (i) {
var data = {};
if (i["name"] == "b") {
data["b"] = i;
} else {
data["a"] = i;
}
arr.push(data);
});
document.body.innerHTML = JSON.stringify(arr);
结果:[{"a":{"id":"3","name":"a"}},{"b":{
相关文章:
- 循环遍历以数组为值的Javascript对象
- json对象中缺少对象循环
- 如何循环通过2个对象数组并通过匹配id进行合并
- 如何使用自定义辅助对象(handler)实现嵌套的每个循环
- 如何在javascript中循环并将JSON对象放入数组中
- 对象/数组和循环上的原型
- foreach对象循环添加到堆栈顶部
- javascript 中的框架对象循环是未定义的
- JavaScript 对象循环替换信息
- 为什么不是'这个对象循环不起作用
- 在一行中使用对象循环和数组循环
- 将从节点promise返回的对象循环到下一个.then
- 通过javascript对象循环将键转换为字符串
- 从对象循环中排除元素
- 如何在对象循环中跳过键
- javascript中的对象循环
- 动态地从对象循环键传递属性引用
- Javascript对象循环只是将最后迭代的元素追加到另一个对象
- 通过JSON对象循环后动态分配变量
- 从Javascript对象循环动态创建的表单.如何将数据保存回对象