Monday, May 20, 2024
 Popular · Latest · Hot · Upcoming
185
rated 0 times [  189] [ 4]  / answers: 1 / hits: 73315  / 11 Years ago, fri, october 25, 2013, 12:00:00

I am trying to create the following data structure in javascript:



d = {foo: [3, 77, 100], bar: [10], baz: [99], biff: [10]}


My starting data structure is a a list of dictionaries:



input = [{key: foo, val: 3}, {key: bar, val: 10}, {key: foo, val: 100}, {key: baz, val: 99}, {key: biff, val: 10}, {key: foo, val: 77]


How can I generate my desired data structure? The following code doesn't seem to append values to the value array.



var d = {}

for (var i in input) {
var datum = input[i];
d[datum.key] = datum.val
}

More From » javascript

 Answers
12
for (var i = 0; i < input.length; i++) {
var datum = input[i];
if (!d[datum.key]) {
d[datum.key] = [];
}
d[datum.key].push(datum.val);
}


FYI, you shouldn't use for (var i in input) to iterate over an array.


[#74720] Thursday, October 24, 2013, 11 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
dorab

Total Points: 22
Total Questions: 106
Total Answers: 99

Location: El Salvador
Member since Fri, May 8, 2020
4 Years ago
;