Wenn Ihre Eingaben sind Arrays
var a = ['f1', 'f2'];
var b = ['s1', 's2'];
Die Transformation Sie suchen, ist ein zip
var zip = (xs,ys)=>
xs.reduce((zs,x,i)=>
zs.concat([[x, ys[i]]]), []);
zip(a,b);
//=> [['f1', 's1'], ['f2', 's2']]
Dies setzt voraus, beide Eingänge die gleiche Länge .
Wenn Ihre Eingaben sind Objekte mit numerischen Tasten
var a = {'0': 'f1', '1': 'f2'};
var b = {'0': 's1', '1': 's2'};
var zipObj = (xs,ys)=>
Object.keys(xs).reduce((zs,xk)=>
zs.concat([[xs[xk], ys[xk]]]), []);
zipObj(a,b);
//=> [['f1', 's1'], ['f2', 's2']]
Trotz Sie nicht darum gebeten hatte, Trey zu verpflichten, ich habe ES5 Versionen der Funktionen enthalten
"use strict";
// zip arrays
var zip = (xs,ys)=>
xs.reduce((zs,x,i)=>
zs.concat([[x, ys[i]]]), []);
// zip objects
var zipObj = (xs,ys)=>
Object.keys(xs).reduce((zs,xk)=>
zs.concat([[xs[xk], ys[xk]]]), []);
Ihre ersten Beispiele sind n ot gültiges JavaScript. –
Wolltest du gleich zwei Objekte machen? '{0: 'f1', 1: 'f2'}'? –
Ich habe versehentlich vergessen, geschweifte Klammern hinzufügen: –