RosettaCodeData/Task/Loop-over-multiple-arrays-simultaneously/JavaScript/loop-over-multiple-arrays-simultaneously-5.js
2015-11-18 06:14:39 +00:00

24 lines
611 B
JavaScript

(function (lists) {
// [[a]] -> [[a]]
function zip(lists) {
var lng = lists.length,
lstHead = lng ? [].concat.apply([], lists.map(function (lst) {
return lst.length ? [lst[0]] : [];
})) : [];
return lstHead.length === lng ? [lstHead].concat(
zip(lists.map(function (x) {
return x.slice(1);
}))
) : [];
}
// [a] -> s
function concat(lst) {
return ''.concat.apply('', lst);
}
return zip(lists).map(concat).join('\n')
})([["a", "b", "c"], ["A", "B", "C"], [1, 2, 3]]);