【发布时间】:2017-12-06 12:37:15
【问题描述】:
我有不同大小的数组,如下所示:
var a = ["x", "y", "z"];
var b = [1,2,3];
var c = ["l", "m", "n"];
我希望它转换成这样的对象数组:
final_array = [{a: 'x', b: 1, c: 'l'}, {a: 'y', b: 2, c: 'm'}, {a: 'z', b: 3, c: 'n'}]
我知道我可以使用循环处理数组,并以某种方式将其转换为上述格式。我尝试过的是这种方式(因为所有数组的大小都相同):
var final_array = [];
_.forEach(a, function(value, key){
var each_list = {};
each_list.a = a[key];
each_list.b = b[key];
each_list.c = c[key];
final_array[key] = each_list;
})
console.log(final_array); // [{a: 'x', b: 1, c: 'l'}, {a: 'y', b: 2, c: 'm'}, {a: 'z', b: 3, c: 'n'}]
但这似乎是一个非常漫长的方法,我相信使用 lodash 或其他方法会有一些好的方法来做到这一点。
谁能帮我解决这个问题。我已经对堆栈溢出和 lodash 文档进行了足够多的搜索,但找不到更好的方法。
【问题讨论】:
标签: javascript angularjs lodash