我喜欢的是像这样的数组
myArray = [
[{"value":1},{"value":2},{"value":3}]
[{"value":2},{"value":4},{"value":6}]
]
我试着用两个循环来构建它。外循环喊构建数组中的两个"外部"元素,内循环喊构建3个内部对象。
http://jsfiddle.net/xtrem1234/xx06zt5s/
var dataset = [];
var categories = ["Category_1", "Category_2"];
var myArray = [];
categories.forEach(function (category, index) {
for (var n = 1; n < 4; n++) {
var d;
d = {};
d.value = (index+1) * n;
console.log("index: " + index);
console.log("n: " + n);
console.log("d.value: " + d.value);
dataset[n] = d;
}
myArray.push(dataset);
});
console.log(JSON.stringify(myArray));
问题是,您的数组dataset
是全局数组。在forEach
循环中定义它。
代码
var categories = ["Category_1", "Category_2"];
var myArray = [];
categories.forEach(function(category, index) {
var dataset = [];
for (var n = 1; n < 4; n++) {
var d;
d = {};
d.value = (index + 1) * n;
dataset[n] = d;
}
myArray.push(dataset);
});
console.log(JSON.stringify(myArray));
A:每次forEach循环运行时,都需要重新初始化数据集数组
B: 您可以将信息推送到数据集数组中,与myArray 相同
var categories = ["Category_1", "Category_2"];
var myArray = [];
categories.forEach(function (category, index) {
var dataset = [];
for (var n = 1; n < 4; n++) {
dataset.push({'value': (index+1) * n});
}
myArray.push(dataset);
});
console.log(JSON.stringify(myArray));