如何将数组数组重组为对象数组

时间:2015-06-10 14:22:57

标签: javascript arrays linq.js

我需要帮助构建一个新的json对象数组。我从一组数组开始。我需要最终得到一个对象数组。 javascript或linq.js将完美地工作。感谢

这就是我的开始

var needtoChangeThisArray = [
        [1558, 219561],
        [2520, 438218],
        [3482, 656874],
        [4444, 875531],
        [5406, 1094187]
];

这就是阵列需要结构化的方式

var needsToLookLikeThisArray = [
{
"name": "Arbor Vista - Arbor Custom Homes",
"subId": "10394",
"bldId": "8598"
}, {
"name": "Arbor Vista - DR Horton - (OR)",
"subId": "10394", "bldId": "8597"
}, {
"name": "Copper Canyon Estates - Brentwood Homes",
"subId": "9048",
"bldId": "16737"
}`enter code here`
];

所以我需要最终得到这个

var needToEndUpWithThisArray = [
{
"sqft": "1558",
"price": "219561"
}, {
"sqft": "2520",
"price": "438218"
}, {
"sqft": "3482",
"price": "656874"
 }, {
"sqft": "4444",
"price": "875531"
}, {
"sqft": "5406",
"price": "1094187"
}
];

2 个答案:

答案 0 :(得分:1)

这还够吗?

needToEndUpWithThisArray = needtoChangeThisArray.map(function(a) {
  return {
    sqft: a[0],
    price: a[1]
  };
});

答案 1 :(得分:1)

这应该这样做:

//Your starting array
var needtoChangeThisArray = [
        [1558, 219561],
        [2520, 438218],
        [3482, 656874],
        [4444, 875531],
        [5406, 1094187]
];

//declaring your new array
var needToEndUpWithThisArray = new Array();

//looping through all your values, could also go with ForEach
for (var i = 0; i < needtoChangeThisArray.length; i++) {
    var t = needtoChangeThisArray[i];
    var tempArray = {sqft:t[0], price:t[1]};
    needToEndUpWithThisArray.push(tempArray); //stuff your new array with the values.
}