将两个数组合并为具有属性值的对象数组

Avs*_*_90 4 javascript

需要生成如下JSON:

{ applicationName :'appName1', frequency:'00'},
{ applicationName :'appName2', frequency:'3'},
{ applicationName :'appName3', frequency:'25'},
{ applicationName :'appName4', frequency:'54'}
Run Code Online (Sandbox Code Playgroud)

scope.appApplications - 它是一个JSON对象,我将其拆分为两个数组.我有两个数组如下.需要合并它们(applicationName []和频率[])并带有如上所述的输出.如何才能做到这一点?

var frequencies = [];
var applicationName = [];
angular.forEach(scope.appApplications, function (value, key) {
           frequencies.push(value);
           applications.push(key);
 })
Run Code Online (Sandbox Code Playgroud)

S M*_*han 5

如果您愿意使用下划线,则可以将其作为单个链接函数调用来执行:

_.zip(applicationName,frequencies).map(function(pair) { 
    return _.object(["applicationName","frequency"],pair); 
});
Run Code Online (Sandbox Code Playgroud)

_.zip()打开['a','b','c'][1,2,3]进入[['a',1],['b',2],['c',3]].

Array.map() 在数组的每个成员上调用一个函数并返回结果数组.

_.object()打开["applicationName","frequency"]['a',1]进入{applicationName: 'a', frequency: 1}.

  • 请注意,自lodash v0.4.0起,它现在是zipObject https://lodash.com/docs#zipObject (2认同)