manneJan89
manneJan89

Reputation: 1024

Array to multiple object in underscore

I have an array that looks like this:

[{
    LocalBond:"0",
    LocalCash:"2.42",
    LocalEquity:"0",
    ForeignEquity: "4",
    ...
}]

What I want it look like:

[{
    Source: "LocalBond",
    Value: "0"
},
    Source: "LocalCash",
    Value: "2.42"
},
    Source: "LocalEquity",
    Value: "0"
},
{...}
]

I want to turn a single object into many objects. I also need the exclude the 'ForeignEquity' result.

I tried using _.map, and returning the fields I want, but I am struggling a bit. Am I on the right track? When I pass more than one parameter into my function, I don't get the desired result.

Upvotes: 1

Views: 157

Answers (1)

allel
allel

Reputation: 877

The most simple code is pure javascript:

Using for..in access to the property of the object, and inside of the for loop build the array.

http://www.w3schools.com/jsref/jsref_forin.asp

Example:

https://jsfiddle.net/jewrsL8a/5/

var collection = [{
    LocalBond:"0",
    LocalCash:"2.42",
    LocalEquity:"0",
    ForeignEquity: "4"
}];

var result = [];

for (var property in collection[0]) {
    if(property!=='ForeignEquity'){
      result.push({'Source': property, 'Value': collection[0][property]});
    }
}

console.log(result);

Upvotes: 1

Related Questions