缺少对象循环通过json对象

时间:2015-04-09 07:19:46

标签: javascript jquery arrays json

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'之下,那里发生了什么?

3 个答案:

答案 0 :(得分:1)

试试这个

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);

答案 1 :(得分:0)

你可以做这样的事情



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);




答案 2 :(得分:0)

试试这个

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);

结果: [{ “一”:{ “ID”: “3”, “名称”: “一个”}},{ “B”:{ “ID”: “1”, “姓名”: “B”}},{ “b”:{ “ID”: “2”, “名称”: “b”}}]