Reputation: 2361
I have a javascript matrix
array with the following structure (the first index is x
, the second index is y
, so every x
item has 4 y
items):
0
0 { x: 0, y: 0, z: 0}
1 { x: 0, y: 1, z: 5}
2 { x: 0, y: 2, z: 0}
3 { x: 0, y: 3, z: 1}
1
0 { x: 1, y: 0, z: 4}
1 { x: 1, y: 1, z: 5}
2 { x: 1, y: 2, z: 1}
3 { x: 1, y: 3, z: 8}
What I need to do is get an array that stores the z
values per y
value. So for all the values of x
I need the total values of z
arranged by y
. The structure I am looking for (assuming 4 y
values)
0 4
1 10
2 1
3 9
I tried this:
count = [];
$.each(matrix, function(i, j) {
$.each(j, function(k, v) {
count[k] += v["z"];
})
});
But this returns just an array with NaN
values. Does anyone have better suggestions?
Upvotes: 0
Views: 90
Reputation: 115222
You need to initialize count array
var count=[ 0, 0, 0, 0];
$.each(matrix, function(i, j) {
$.each(j, function(k, v) {
count[k] += parseInt(v["z"],10);
})
});
Upvotes: 1
Reputation: 3685
Your count array is not initialized, and you are trying to do math with undefined
, so your result is NaN
. Initialize count
array with zeros.
Upvotes: 0