Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/449.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/3/arrays/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
使用lodash映射键或任何其他javascript方法(NodeJ)动态更改对象键_Javascript_Arrays_Json_Node.js_Object - Fatal编程技术网

使用lodash映射键或任何其他javascript方法(NodeJ)动态更改对象键

使用lodash映射键或任何其他javascript方法(NodeJ)动态更改对象键,javascript,arrays,json,node.js,object,Javascript,Arrays,Json,Node.js,Object,这是我的json对象: { excels: [ { field1: 'Mohamed', field2: '123456789', field3: 'Sameer', field4: 'Chennai', field5: 'Chennai', field6: 'Asia', field7: '11111', field8: '10-10-1990', field9: 'same

这是我的json对象:

{ 
excels:
   [ { field1: 'Mohamed',
       field2: '123456789',
       field3: 'Sameer',
       field4: 'Chennai',
       field5: 'Chennai',
       field6: 'Asia',
       field7: '11111',
       field8: '10-10-1990',
       field9: 'sameer@gmail.com'},

     { field1: 'Ganesh',
       field2: '987654321',
       field3: 'Pandiyan',
       field4: 'Chennai',
       field5: 'Chennai',
       field6: 'Asia',
       field7: '11111',
       field8: '10-10-1990',
       field9: 'ganesh@gmail.com' } ],
  header:
   { '1': 'firstName',
     '2': 'gsm',
     '3': 'lastName',
     '4': 'street',
     '5': 'city',
     '6': 'region',
     '7': 'postcode',
     '8': 'dob',
     '9': 'email' } 

}
我想让上面的json如下:

[{firstName:Mohamed;gsm:123456789;lastName:Sameer;street:Chennai;city:Chennai;region:Asia;postcode:11111;dob:10-10-1990;email:sameer@gmail.com},{firstName:Ganesh;gsm:987654321;lastName:Pandiyan;street:Chennai;city:Chennai;region:Asia;postcode:11111;dob:10-10-1990;email:ganesh@gmail.com}]
[{firstName:Sameer;gsm:123456789;lastName:Mohamed;street:Chennai;city:Chennai;region:Asia;postcode:11111;dob:10-10-1990;email:sameer@gmail.com},{firstName:Pandiyan;gsm:987654321;lastName:Ganesh;street:Chennai;city:Chennai;region:Asia;postcode:11111;dob:10-10-1990;email:ganesh@gmail.com}]
但有一个条件,, 如果我的json头对象看起来像:

header: 
   { '1': 'lastName',
     '2': 'gsm',
     '3': 'firstName',
     '4': 'street',
     '5': 'city',
     '6': 'region',
     '7': 'postcode',
     '8': 'dob',
     '9': 'email' } 
我正在改变名字和姓氏的顺序

我想让上面的json如下:

[{firstName:Mohamed;gsm:123456789;lastName:Sameer;street:Chennai;city:Chennai;region:Asia;postcode:11111;dob:10-10-1990;email:sameer@gmail.com},{firstName:Ganesh;gsm:987654321;lastName:Pandiyan;street:Chennai;city:Chennai;region:Asia;postcode:11111;dob:10-10-1990;email:ganesh@gmail.com}]
[{firstName:Sameer;gsm:123456789;lastName:Mohamed;street:Chennai;city:Chennai;region:Asia;postcode:11111;dob:10-10-1990;email:sameer@gmail.com},{firstName:Pandiyan;gsm:987654321;lastName:Ganesh;street:Chennai;city:Chennai;region:Asia;postcode:11111;dob:10-10-1990;email:ganesh@gmail.com}]
查看名字和姓氏


如何做到这一点?任何js方法都可以做到这一点吗?

您可以通过执行一些简单的数组/对象操作来做到这一点

var result = source.excels.map((details) =>
  Object.keys(details).reduce((a, b) =>
    (a[source.header[b.replace('field', '')]] =
      details[b], a), {}));

console.log(result);
// result would contain [{firstName:'Mohamed',gsm:123456789, ......
这里要学的东西


注意:在处理物品时,我们不能依赖订单。这就是我依赖于键字符串的原因。

您可以使用本机和方法来实现它:


这是完全可能的。但你们试过什么?我得到了这个json,但我不知道如何构建这样的结构,所以我只是在寻找解决方案?看看对象上的reduce,使用空对象作为statting值,在头对象上迭代,并根据excel的每个条目建立结果array@ilmrions你能发布一些代码吗!这对我真的很有帮助:)帮帮我