我有以下3个数组:
arr1 = ['a', 'b', 'c'];
arr2 = ['y', 'j', 'k'];
arr3 = ['t', 'w', 'u'];
...
我想要将其映射到相同的数组:
arr = [
'a-y-t',
'a-y-w',
'a-y-u',
..
'c-k-w',
'c-k-u'
]
我该如何做?
谢谢。
我有以下3个数组:
arr1 = ['a', 'b', 'c'];
arr2 = ['y', 'j', 'k'];
arr3 = ['t', 'w', 'u'];
...
我想要将其映射到相同的数组:
arr = [
'a-y-t',
'a-y-w',
'a-y-u',
..
'c-k-w',
'c-k-u'
]
我该如何做?
谢谢。
flatMap
,您可以实现想要的结果。以下是一种实现方式:
const arr1 = ['a', 'b', 'c'];
const arr2 = ['y', 'j', 'k'];
const arr3 = ['t', 'w', 'u'];
const result = arr1.flatMap(s=>arr2.flatMap(p=>arr3.flatMap(e=>`${s}-${p}-${e}`)));
console.log(result);
const
arr1 = ['a', 'b', 'c'],
arr2 = ['y', 'j', 'k'],
arr3 = ['t', 'w', 'u'],
result = [arr1, arr2, arr3]
.reduce((a, b) => a.reduce((r, v) => r.concat(b.map(w => [].concat(v, w))), []))
.map(a => a.join('-'));
console.log(result);
直截了当
const arr1 = ['a', 'b', 'c'];
const arr2 = ['y', 'j', 'k'];
const arr3 = ['t', 'w', 'u'];
let result = [];
arr1.forEach((list1)=> arr2.forEach((list2)=> arr3.forEach((list3)=>
result.push(`${list1}-${list2}-${list3}`)
)
)
)
console.log(result);