在Python中,[2]是一个列表,以下代码给出以下输出:
[2] * 5 # Outputs: [2,2,2,2,2]
是否存在一种简单的方法来做到这一点与JavaScript数组?
我写了下面的函数来实现它,但是有没有更短或更好的函数呢?
var repeatelem = function(elem, n){
// returns an array with element elem repeated n times.
var arr = [];
for (var i = 0; i <= n; i++) {
arr = arr.concat(elem);
};
return arr;
};
如果需要重复一个数组,请使用下面的方法。
Array(3).fill(['a','b','c']).flat()
将返回
Array(9) [ "a", "b", "c", "a", "b", "c", "a", "b", "c" ]
使用这个函数:
function repeatElement(element, count) {
return Array(count).fill(element)
}
>>> repeatElement('#', 5).join('')
"#####"
或者是更简洁的版本:
const repeatElement = (element, count) =>
Array(count).fill(element)
>>> repeatElement('#', 5).join('')
"#####"
或者是咖喱口味的:
const repeatElement = element => count =>
Array(count).fill(element)
>>> repeatElement('#')(5).join('')
"#####"
你可以在列表中使用这个函数:
const repeatElement = (element, count) =>
Array(count).fill(element)
>>> ['a', 'b', ...repeatElement('c', 5)]
['a', 'b', 'c', 'c', 'c', 'c', 'c']