javascript:使用第一个“行"定义属性将二维数组转换为对象数组 [英] javascript: convert two dimensional array to array of objects using the first 'row' to define properties

查看:17
本文介绍了javascript:使用第一个“行"定义属性将二维数组转换为对象数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

为了填充接收行对象数组的数据网格,我正在寻找一个很好的解决方案来转换这样的数组:

<预><代码>[['国家','人口'],['某处',100],['其他地方',200]]

变成这样的对象数组:

<预><代码>[{国家:'某处',人口:100},{国家:'其他地方',人口:200},]

更新:

这是我目前使用的解决方案:

 function arrayToRows(arr) {var defs = [];var 数据 = [];var 行 = [];无功 r;变量对象;var headerRow = arr.shift();//删除标题行defs = headerRow.map(function(cell) {返回 {领域:细胞,显示名称:单元格}});for (var i = 0; i < arr.length; i++) {r = arr[i];对象 = {};for (var j = 0; j 

}

解决方案

var array = [['国家','人口'],['某处',100],['其他地方',200]];var 键 = array.shift();var objects = array.map(function(values) {return keys.reduce(function(o, k, i) {o[k] = 值[i];返回o;}, {});});

In order to populate a data-grid that receives array of row objects, I am looking for a good solution to convert an array such as this:

[  
['country', 'population'],
['someplace', 100],
['otherplace', 200]
]

into an array of objects such as this:

[
{country: 'someplace', population: 100},
{country: 'otherplace', population: 200},
]

UPDATE:

this is the solution I am using so far:

 function arrayToRows(arr) {
var defs = [];
var data = [];
var rows = [];
var r;
var obj;



var headerRow = arr.shift(); //remove header row

defs = headerRow.map(function(cell) {
  return {
    field: cell,
    displayName: cell
  }
});


for (var i = 0; i < arr.length; i++) {
  r = arr[i];
  obj = {};

  for (var j = 0; j < defs.length; j++) {
    obj[defs[j].field] = r[j];
  }
  rows.push(obj);
}
return rows;

}

解决方案

var array = [  
    ['country', 'population'],
    ['someplace', 100],
    ['otherplace', 200]
];

var keys = array.shift();
var objects = array.map(function(values) {
    return keys.reduce(function(o, k, i) {
        o[k] = values[i];
        return o;
    }, {});
});

这篇关于javascript:使用第一个“行"定义属性将二维数组转换为对象数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆