简而言之,我正在对数据库进行 REST 调用并获取成分列表。 JSON 如下所示:
[{"SubItemID":1,"MainItemID":1,"SubName":"2%","MainName":"Milk"},
{"SubItemID":2,"MainItemID":1,"SubName":"Skim/Fat Free","MainName":"Milk"},
{"SubItemID":3,"MainItemID":2,"SubName":"Chedder","MainName":"Cheese"}]
我想要做的是将其转换为一个有用的数组,其组织方式如下:
- 牛奶
- 2%
- 脱脂/脱脂
- 奶酪
- 切德奶酪
除了这样排序之外,我还想维护与每个项目关联的 ID。所以奶酪有“2”,切德奶酪有“3”。
我已经能够将牛奶和奶酪的独特值输入数组中,但我不知道如何继续。建议将不胜感激!
这是我到目前为止所拥有的:
$.ajax({
url: "../api/IngredientChoices",
contentType: "json",
success: function (data) {
var _subCategories = {};
var _mainCategories = [];
$.each(data, function (index, item) {
if ($.inArray(item.MainName, _mainCategories) === -1) {
_mainCategories.push(item.MainName);
}
});
$.each(_mainCategories, function () {
alert(this);
});
}
});
最佳答案
详细的工作答案。数据被添加到关联数组中。
obj = JSON.parse(data);
console.log(obj);
d = {}
$.each(obj, function (index, item) {
if (!(item.MainItemID in d)) {
d[item.MainItemID] = [];
d[item.MainItemID][0] = item.MainName;
d[item.MainItemID][1] = {}
}
d[item.MainItemID][1][item.SubItemID] = item.SubName;
});
console.log(d);
输出:
Object {1: Array[2], 2: Array[2]}
1: Array[2]
0: "Milk"
1: "2%"
2: "Skim/Fat Free"
2: Array[2]
0: "Cheese"
3: "Chedder"
关于数组内的 Javascript/Jquery OOP 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14313762/