在JavaScript中合并动态对象数组

Jas*_*son 1 javascript arrays object array-merge

我正在尝试使用key:[value array]动态构建对象,但是使用不同的方法,我总是以value数组中的单个项目(在响应中有多个值)结束。

伪代码:

var myFunction = function () {
    var myObject = {};
    $.ajax('http://the.url.com', {
        type: "GET",
        success: function (res) {
            $(res).each(function (i, v) {
                    var name = v.name;
                    var id = v.id;
                    // create object with building block and tech id to associate techs to BBs
                    myObject[name] = new Array();
                    myObject[name].push(id);
                });
        },
        error: function (xhr) {}
    }
}
Run Code Online (Sandbox Code Playgroud)

电流输出:

{
    key1: ["value1c"]
    key2: ["value2a"]
    key3: ["value3b"]
}
Run Code Online (Sandbox Code Playgroud)

所需的输出:

{
    key1: ["value1a", "value1b","value1c"]
    key2: ["value2a"]
    key3: ["value3a", "value3b"]
}
Run Code Online (Sandbox Code Playgroud)

meh*_*kin 5

您要为每个键覆盖一个新的现有数组,然后使用以下行将最新的数组推入:

 myObject[name] = new Array();
Run Code Online (Sandbox Code Playgroud)

尝试添加检查以避免覆盖:

 myObject[name] = myObject[name] || new Array();
Run Code Online (Sandbox Code Playgroud)