Reputation: 215
I am using Node and scrapping a website and I get the data back it comes back as a string so I make an array out of the string and the array look like below
I have an array that looks like this:
`[ [ '2011\r\n', '24"', '21"' ],
[ '2010\r\n', '24"', '21"' ],
[ '2009\r\n', '24"', '21"' ],
[ '2008\r\n', '24"', '21"' ],
[ '2007\r\n', '22"', '20"' ],
[ '2006\r\n', '22"', '20"' ],
[ '2005\r\n', '22"', '20"' ],
[ '2004\r\n', '22"', '20"' ],
[ '2003\r\n', '22"', '19"' ],
[ '2002\r\n', '22"', '19"' ],
[ '2001\r\n', '22"', '19"' ],
[ '2000\r\n', '22"', '19"' ],
[ '1999\r\n', '22"', '19"' ],
[ '1998\r\n', '22"', '19"' ],
[ '1997\r\n', '22"', '19"' ],
[ '1982\r\n', '18"', '18"' ],
[ '1981\r\n', '18"', '18"' ],
[ '1980\r\n', '18"', '18"' ],
[ '1979\r\n', '18"', '18"' ],
[ '1978\r\n', '18"', '18"' ],
[ '1977\r\n', '16"', '16"' ],
[ '1976\r\n', '16"', '16"' ],
[ '1975\r\n', '16"', '16"' ],
[ '1974\r\n', '16"', '16"' ],
[ '1973\r\n', '16"', '16"' ],
[ '1967\r\n', '15"', '15"' ],
[ '1966\r\n', '15"', '15"' ],
[ '1965\r\n', '15"', '15"' ],
[ '1964\r\n', '15"', '15"' ] ]
`
I would like to make an object out of this array that looks like this
var car = [
{
"year": 2011,
"driver_side": '24"',
"pass_side": '21"'
},
{
"year": 2010,
"driver_side": '24"',
"pass_side": '21"'
},
{
"year": 2009,
"driver_side": '24"',
"pass_side": '21"'
},
{
"year": 2008,
"driver_side": '24"',
"pass_side": '21"'
},
{
"year": 2007,
"driver_side": '22"',
"pass_side": '20"'
},
// And so on...........
]
Any Help? That is what I need thank you for any help
Upvotes: 1
Views: 57
Reputation: 88378
If your array is called a
, all you need is:
a.map(([year,driver_side,pass_side])=>({year, driver_side, pass_side}))
Actually, since you wanted years to be numbers, you have to tweak it just a little:
a.map(([year,driver_side,pass_side])=>({year: +year.trim(), driver_side, pass_side}))
If you are starting with a JSON string, call JSON.parse
on the string to get a JavaScript array object, then use the expression above.
Upvotes: 1
Reputation: 727
var array = [ [ '2011\r\n', '24"', '21"' ] /* etc. */ ];
var cars = array.map(function (item) {
return {
year: parseInt(item[0], 10),
driver_side: item[1],
pass_side: item[2]
};
};
Upvotes: 2
Reputation: 6360
const data = [ [ '2011\r\n', '24"', '21"' ],
[ '2010\r\n', '24"', '21"' ],
[ '2009\r\n', '24"', '21"' ],
[ '2008\r\n', '24"', '21"' ],
[ '2007\r\n', '22"', '20"' ],
[ '2006\r\n', '22"', '20"' ],
[ '2005\r\n', '22"', '20"' ],
[ '2004\r\n', '22"', '20"' ],
[ '2003\r\n', '22"', '19"' ],
[ '2002\r\n', '22"', '19"' ],
[ '2001\r\n', '22"', '19"' ],
[ '2000\r\n', '22"', '19"' ],
[ '1999\r\n', '22"', '19"' ],
[ '1998\r\n', '22"', '19"' ],
[ '1997\r\n', '22"', '19"' ],
[ '1982\r\n', '18"', '18"' ],
[ '1981\r\n', '18"', '18"' ],
[ '1980\r\n', '18"', '18"' ],
[ '1979\r\n', '18"', '18"' ],
[ '1978\r\n', '18"', '18"' ],
[ '1977\r\n', '16"', '16"' ],
[ '1976\r\n', '16"', '16"' ],
[ '1975\r\n', '16"', '16"' ],
[ '1974\r\n', '16"', '16"' ],
[ '1973\r\n', '16"', '16"' ],
[ '1967\r\n', '15"', '15"' ],
[ '1966\r\n', '15"', '15"' ],
[ '1965\r\n', '15"', '15"' ],
[ '1964\r\n', '15"', '15"' ] ]
const cars = []
for (const a of data) {
cars.push({
year: Number(a[0]),
driver_side: a[1],
pass_side: a[2]
})
}
console.log(cars)
Upvotes: 1