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"
}
}
但结果是没有父HISTORY如下所示。如何创建儿童历史记录以及如上所示的儿童推送?
0: "History",
1: {
name: "some text"
},
2: {
name: "some text 2"
}
答案 0 :(得分:1)
Easy ES6示例。
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
旧的浏览器支持。
{{1}}
答案 1 :(得分:1)
将历史记录作为数组对象的元素(并赋予其正确的名称......)。然后历史可以成为数组的根元素。在其中你可以使用推送功能:
var array = {"History":[]};
...
array.History.push(array2);
答案 2 :(得分:0)
将数组[“History”]的值声明为数组并将值推入该值:
let words = ['hello', 'world']
答案 3 :(得分:0)
没有像“json array”或“json object”这样的东西。 JSON始终是文字。它是数据结构的文本表示,可以是数组或对象。它对数组和对象使用JavaScript表示法。
为了得到这个JSON:
"History":{
0:{
name: "some text"
},
1:{
name: "some text 2"
}
}
您需要构建一个PHP object或array。 PHP arrays比bare objects更通用,我建议您使用它们。
其键为数字,连续且从零开始的PHP数组 在JSON中编码为数组。其他数组被编码为对象。
此数组必须只有一个键("History"
),其关联值必须是包含两个数组的数组(数字索引)。这些数组中的每一个都必须只有一个键:"name"
。
你的阵列是这样的:
$input = array(
"History" => array(
array("name" => "some text"),
array("name" => "some text 2"),
),
);
当传递给json_encode()
时,它会产生一个等同于你期望的JSON。
有许多方法可以构建输入数组。详细了解accessing and modifying array elements using the square brackets syntax。