2017-06-21 75 views
-1

我有类似的东西。在javascript中删除一个KEY名称

"data": { 
     "abcd": [ 
      { 
       "abc": { 
        "fr": "India", 
        "to": "Moon", 
       } 
      }, 
      { 
       "abc": { 
        "fr": "Mars", 
        "to": "Jupiter", 
       } 
      } 
     ], 
     "distance": 1234, 
    } 

但我想转换为这样的事情

"data": { 
      "abcd": [ 
       { 

         "fr": "India", 
         "to": "Moon", 
       }, 
       { 

         "fr": "Mars", 
         "to": "Jupiter", 

       } 
      ], 
      "distance": 1234, 
     } 

我想brign农行对象内部的细节,让他们为对象的ABCD数组内未命名的对象。

请帮忙。

+2

和你尝试过这么远吗? –

+0

添加有问题的代码 –

+0

@Aneek如此删除一个键,你试过推? – evolutionxbox

回答

1

使用Array#map迭代阵列并返回每个对象的abc键的内容。分配结果obj.data.abcd

const obj = {"data":{"abcd":[{"abc":{"fr":"India","to":"Moon"}},{"abc":{"fr":"Mars","to":"Jupiter"}}],"distance":1234}}; 
 

 
obj.data.abcd = obj.data.abcd.map((o) => o.abc); 
 

 
console.log(obj);

4

一个简单reduce()就足够

let obj = { 
 
    "data": { 
 
    "abcd": [{ 
 
     "abc": { 
 
      "fr": "India", 
 
      "to": "Moon", 
 
     } 
 
     }, 
 
     { 
 
     "abc": { 
 
      "fr": "Mars", 
 
      "to": "Jupiter", 
 
     } 
 
     } 
 
    ], 
 
    "distance": 1234, 
 
    } 
 
}; 
 

 
obj.data.abcd = obj.data.abcd.reduce((a, b) => a.concat(b.abc), []); 
 

 
console.log(obj);

+2

这是一个很好的答案,但请不要提供饲料 - 否则SO会变成一种编码服务,每个人都会发布第一时间的问题,很少有人知道研究或努力。 – G0dsquad

+0

这是什么问题? –

+0

由于OP不太可能理解你所写的内容,你可以添加一个关于你的代码的简单解释吗? – evolutionxbox