飞镖列表中有一个expand method,可以执行以下操作:
var input = [1, 2, 3];
var duplicated = input.expand((i) => [i, i]).toList();
print(duplicated); // => [1, 1, 2, 2, 3, 3]
用JavaScript做到这一点的最佳方法是什么?
答案 0 :(得分:5)
您可以使用.flatMap
并让回调函数返回包含两个元素的数组,这些元素会自动变平:
var input = [1, 2, 3];
const expanded = input.flatMap(num => [num, num]);
console.log(expanded);
答案 1 :(得分:1)
您可以这样做。
var input = [1,2,3];
var duplicated = input.map(i=>[i,i]).flat()
console.log(duplicated);
答案 2 :(得分:0)
在这种情况下,flatMap
方法是首选方法,因为它具有可读性,但只是向您展示了更多方法可以做到这一点:
var input = [1, 2, 3];
var duplicated = input.reduce((a, b) => {
a.push(b,b);
return a;
}, []);
console.log(duplicated);