Javascript 两个数组的对象到一个对象数组

Javascript 两个数组的对象到一个对象数组,javascript,Javascript,我有这样的数据: var data = { value1: ["a", "b", "c"], value2: [1, 2, 3] } 我想将其转换为: var newData = [ {value1: "a", value2: 1}, {value1: "b", value2: 2}, {value1: "c", value2: 3} ] 如何使用javascript实现这一点?使用方法生成数组 var数据={ 价值1:[“a”、“b”、“c”], 值2:[1、2、3]

我有这样的数据:

var data = {
  value1: ["a", "b", "c"],
  value2: [1, 2, 3]
}
我想将其转换为:

var newData = [
  {value1: "a", value2: 1},
  {value1: "b", value2: 2},
  {value1: "c", value2: 3}
]
如何使用javascript实现这一点?

使用方法生成数组

var数据={
价值1:[“a”、“b”、“c”],
值2:[1、2、3]
};
//迭代第一个属性
var res=data.value1.map(函数(v,i){
//生成数组对象元素
返回{
价值1:v,
值2:数据。值2[i]
}
});
控制台日志(res)
var数据={
价值1:[“a”、“b”、“c”],
值2:[1、2、3]
}
var newData=[];
对于(var i=0;i尝试以下方法:

var数据={
价值1:[“a”、“b”、“c”],
值2:[1、2、3]
};
var-arr=[];
数据[Object.keys(数据)[0]].forEach(函数(值,索引){
arr[index]={};
Object.keys(数据).forEach(函数(键){
arr[index][key]=数据[key][index];
});
});
console.log(arr)
var数据={
价值1:[“a”、“b”、“c”],
值2:[1、2、3]
}
var newData=[];

对于(var i=0;i您可以使用完整的动态版本,而无需提供键

它也适用于长度不等的阵列

函数轴(对象){
返回Object.keys(Object).reduce(函数r,k){
对象[k]。forEach(函数(a,i){
r[i]=r[i]|{};
r[i][k]=a;
});
返回r;
}, []);
}
log(pivot({value1:[“a”,“b”,“c”],value2:[1,2,3]});
log(pivot({value1:[“a”、“b”、“c”、“d”]、value2:[1,2,3]、value3:[1,2,3,5,6,7,8]});

。作为控制台包装{max height:100%!important;top:0;}
这假设两者的大小相同。@Ghasan:这是预期值input@Ghasan:我将添加解决方案,以解决您喜欢的问题。;)你对lodash/下划线开放吗?循环
value1
,并将由
value1
中的值和
value2
中的值在同一索引处生成的小对象推到数组上。名称
value1
value2
是否已修复?@torazaburo我不想使用lodash或下划线,而value1和value2是固定的不是固定的。单个数组的长度是否保证相同?对于大多数答案,最好添加一个解释来说明代码是如何工作的,这有助于其他编程经验较少的人理解代码的作用。
var data = {
  value1: ["a", "b", "c"],
  value2: [1, 2, 3]
}

var newData = [];

for(var i=0;i<data.value1.length;i++){
   var obj = {
       value1: data.value1[i],
       value2: data.value2[i]
   }
   newData.push(obj);
}