数组内的 Javascript/Jquery OOP 数组

标签 javascript jquery

简而言之,我正在对数据库进行 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"}]

我想要做的是将其转换为一个有用的数组,其组织方式如下:

  1. 牛奶
    1. 2%
    2. 脱脂/脱脂
  2. 奶酪
    1. 切德奶酪

除了这样排序之外,我还想维护与每个项目关联的 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/

相关文章:

javascript - Ajax 中的加载指示器

jquery - Web 服务修剪起始零

javascript - npm 未运行 package.json 中的脚本

javascript - 带有圆 Angular 末端的 Canvas 矩形(进度条) - 值较低的问题

javascript - 在 JavaScript 中查找构造函数名称

javascript - JQuery - .val() 返回旧值

php - Codeigniter如何在 Controller 中接收ajax post数据

javascript - Soundcloud API - Access-Control-Allow-Origin 不允许 Origin <mysite>

javascript - 如何以编程方式确定 CKEditor 实例的名称

javascript - 模块模式单元测试