Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/454.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 数组到对象数组并返回_Javascript_Json - Fatal编程技术网

Javascript 数组到对象数组并返回

Javascript 数组到对象数组并返回,javascript,json,Javascript,Json,我需要一个通用方法来获取(数组数组)+(头数组)并将其转换为对象的JSON数组,然后将其转换回数组。位于的SQLike库中的“unpack”/“pack”方法可以执行此操作。出于各种原因,我真的不喜欢这个库,而更喜欢使用其他库。有人能推荐一个解决方案吗 为了澄清,我想在这两个数据“结构”之间来回切换: 1) var headers = ['col_1', 'col_2'] var data = [['x0', 0.34],['x1', 0.35]] 2) var objArr = [[

我需要一个通用方法来获取(数组数组)+(头数组)并将其转换为对象的JSON数组,然后将其转换回数组。位于的SQLike库中的“unpack”/“pack”方法可以执行此操作。出于各种原因,我真的不喜欢这个库,而更喜欢使用其他库。有人能推荐一个解决方案吗

为了澄清,我想在这两个数据“结构”之间来回切换:

1) var headers = ['col_1', 'col_2'] 
   var data = [['x0', 0.34],['x1', 0.35]]

2) var objArr = [[{col_1: 'x0'},{col_2: 0.34}], [{col_1: 'x1', col_2: 0.35}]]

我不能每次都创建对象模板,因为我正在从google工作表中读取各种数据。因此,我需要某种类型的通用方法来执行此操作。

您可以使用命名的数组从数组中的数据在对象中创建属性:

function toObjects(headers, data) {
  var result = [];
  for (var i = 0; i < data.length; i++) {
    var o = {};
    for (var j = 0; j < headers.length; j++) {
      o[headers[j]] = data[i][j];
    }
    result.push(o);
  }
  return result;
}
函数对象(标题、数据){
var结果=[];
对于(变量i=0;i
然后使用标题从对象中读取属性并放入数组:

function toArray(headers, data) {
  var result = [];
  for (var i = 0; i < data.length; i++) {
    var a = [];
    for (var j = 0; j < headers.length; j++) {
      a.push(data[i][headers[j]]);
    }
    result.push(a);
  }
  return result;
}
函数到数组(标题、数据){
var结果=[];
对于(变量i=0;i
您可以使用命名的数组从数组中的数据在对象中创建属性:

function toObjects(headers, data) {
  var result = [];
  for (var i = 0; i < data.length; i++) {
    var o = {};
    for (var j = 0; j < headers.length; j++) {
      o[headers[j]] = data[i][j];
    }
    result.push(o);
  }
  return result;
}
函数对象(标题、数据){
var结果=[];
对于(变量i=0;i
然后使用标题从对象中读取属性并放入数组:

function toArray(headers, data) {
  var result = [];
  for (var i = 0; i < data.length; i++) {
    var a = [];
    for (var j = 0; j < headers.length; j++) {
      a.push(data[i][headers[j]]);
    }
    result.push(a);
  }
  return result;
}
函数到数组(标题、数据){
var结果=[];
对于(变量i=0;i
这应该行得通。注意,正如Guffa在评论中提到的,pack中数组中的值的顺序,即头部数组的生成顺序,不能保证与解包时相同,但头部和值是匹配的

函数解包(标题、值){
var结果=[];
对于(var v=0;vlog(JSON.stringify(打包))这应该行得通。注意,正如Guffa在评论中提到的,pack中数组中的值的顺序,即头部数组的生成顺序,不能保证与解包时相同,但头部和值是匹配的

函数解包(标题、值){
var结果=[];
对于(var v=0;v

var headers=['col_1','col_2'];
var数据=[[x0',0.34],[x1',0.35];
函数解包(标题、数据){
未打包的var=[]、obj、i、il、n、nl;
对于(i=0,il=data.length;i

var headers=['col_1','col_2'];
var数据=[[x0',0.34],[x1',0.35];
函数解包(标题、数据){
未打包的var=[]、obj、i、il、n、nl;
对于(i=0,il=data.length;i