我有一个对象数组,我想得到一个数组的数组,这里显示为[x,y,value]。 y的限制为500,然后x的增量为1,而y的限制应再次从0开始。
Example: [0,0, 112] [0,1,75]...[0,500,42]
[1,0,54] [1,1,98]...[1,500,67]
因此,主数组中的数组总数应等于对象数组的长度。
[{
color: "red",
value: "112"
},
{
color: "green",
value: "75"
},
{
color: "blue",
value: "19"
},
{
color: "cyan",
value: "20"
},
{
color: "magenta",
value: "47"
},
{
color: "yellow",
value: "68"
},
{
color: "black",
value: "75"
}
]
这只是示例数据,但是我的数据是动态的,可以跨越3000多个值。
数组数组的格式为here。
请咨询。
答案 0 :(得分:1)
这是一个非常基本的实现。基本上循环遍历数组的内容,然后测试其mod 500 = 0,如果是,则递增您的计数器。注意,我的计数器从-1开始,这是因为当i = 0时的第一次迭代i % 500 == 0
的计算结果为true。
var sampleData = [{
color: "red",
value: "112"
},
{
color: "green",
value: "75"
},
{
color: "blue",
value: "19"
},
{
color: "cyan",
value: "20"
},
{
color: "magenta",
value: "47"
},
{
color: "yellow",
value: "68"
},
{
color: "black",
value: "75"
},
{
color: "green",
value: "75"
},
{
color: "blue",
value: "19"
},
{
color: "cyan",
value: "20"
},
{
color: "magenta",
value: "47"
},
{
color: "yellow",
value: "68"
},
{
color: "black",
value: "75"
},
{
color: "green",
value: "75"
}
];
var result = [];
var outterIndex = -1;
var innerIndex = -1;
for (var i = 0; i < sampleData.length; i++) {
if (i % 500 == 0) {
outterIndex++;
innerIndex = -1;
}
innerIndex++;
result.push([outterIndex, innerIndex, sampleData[i].value])
}
console.log(result)