var array = ["History"]
...
for (var i = 0; i<div.length; i++){
    var array2 = {
        "name": div[i].value
    };
}
array.push(array2);


我需要创建数组的根,如下所示

"History":{
    0:{
        name: "some text"
    },
    1:{
        name: "some text 2"
    }
}


但是结果是,没有父历史记录,如下所示。如上图所示,我如何创建子历史记录并将其添加到子项中?

0: "History",
1: {
    name: "some text"
},
2: {
    name: "some text 2"
}

最佳答案

简单的ES6示例。

const tag = 'History';
const obj = {[tag]: {}};
const res = ['ex1', 'ex2', 'ex3'].reduce((acc, x, i) => {acc[tag][i] = x; return acc;}, obj);

console.log(res); // { "History": { 0: "ex1", 1: "ex2", 2: "ex3" } }




旧的浏览器支持。

var tag = 'History';
var obj = {History: {}};
var res = ['ex1', 'ex2', 'ex3'].reduce(function(acc, x, i){ acc[tag][i] = x; return acc; }, obj);

console.log(res); // Same output as above

10-06 04:18
查看更多