Javascript 遍历对象键并操纵键值

Javascript 遍历对象键并操纵键值,javascript,arrays,ecmascript-6,javascript-objects,Javascript,Arrays,Ecmascript 6,Javascript Objects,我有一个来自服务器响应的对象数组 阵列结构: [ { col1: ["a", "b"], col2: ["c", "d"] }, { col1: ["e", "f"], col2: ["g", "h"] } ] 我希望所需的输出数组采用以下形式: [ { col1: "b", col2: "d" }, { col1: "f", col2: "h" } ] 基本上,我想将最初作为数组的objec

我有一个来自服务器响应的对象数组

阵列结构:

[
  {
    col1: ["a", "b"],
    col2: ["c", "d"]
  },

  {
    col1: ["e", "f"],
    col2: ["g", "h"]
  }
]
我希望所需的输出数组采用以下形式:

[
  {
    col1: "b",
    col2: "d"
  },

  {
    col1: "f",
    col2: "h"
  }
]
基本上,我想将最初作为数组的objectkeys值转换为单个值,该值将是objectkeys数组的第二个元素

我可以通过使用
toString()
将对象键数组转换为逗号分隔的字符串,然后执行
string.split(“,”[1]
来进行转换,但我无法遍历对象键


希望ES6中的输入使用map进行迭代

以下代码应按照您的规范工作

var arr=[{col1:[“a”,“b”],col2:[“c”,“d”]},{col1:[“e”,“f”],col2:[“g”,“h”]}]
//[{col1:b,col2:d},{col1:f,col2:h}]
arr2=[];
arr.forEach(e=>{
设currObj={};
Object.keys(e).forEach(f=>{
currObj[f]=e[f][1]
})
arr2.推力(currObj)
})

控制台日志(arr2)
使用
Array#reduce
Object.keys
的可能解决方案。
var arr=[{col1:[“a”,“b”],col2:[“c”,“d”]},{col1:[“e”,“f”],col2:[“g”,“h”]},
res=arr.reduce(函数s,a){
var obj={};
对象。键(a)。映射(函数(c){
obj[c]=a[c][1];
})
s、 推(obj);
返回s;
}, []);

控制台日志(res)您可以将和与具有所需键/值的新对象的内部映射结合使用

var data=[{col1:[“a”,“b”],col2:[“c”,“d”]},{col1:[“e”,“f”],col2:[“g”,“h”]},
结果=data.map(o=>Object.assign({},…Object.keys(o.map)(k=>({[k]:o[k][1]}));
控制台日志(结果)

.as console wrapper{max height:100%!important;top:0;}
这可以通过使用简单的循环来实现,您尝试过什么吗?可能与我使用的es6重复,使用map进行循环。我尝试了双映射,但没有以优化的方式进行迭代。您能发布您到目前为止尝试的内容吗?键名是可变的,而不是固定的,因为它来自服务器响应。效果很好。坚持下去!谢谢这就是我要找的。工作起来很有魅力。