在Python
:串聯陣列本身以複製它
>>> [1,2,3,4] * 2
[1, 2, 3, 4, 1, 2, 3, 4]
什麼是去與JavaScript
的方式嗎?
目前正在使用:
var data = [1,2,3,4];
data.concat(data);
//[1, 2, 3, 4, 1, 2, 3, 4]
在Python
:串聯陣列本身以複製它
>>> [1,2,3,4] * 2
[1, 2, 3, 4, 1, 2, 3, 4]
什麼是去與JavaScript
的方式嗎?
目前正在使用:
var data = [1,2,3,4];
data.concat(data);
//[1, 2, 3, 4, 1, 2, 3, 4]
在JavaScript中你不能乘陣列。您使用Array.concat的當前解決方案是正確的。 請注意,它會使用複製的項目創建單獨的陣列,並且不會更改原始項目。
對於任意的N,array * N
可以這樣寫
[].concat.apply([], Array.apply(0, Array(N)).map(function() { return data }))
當然,這很爛相比Python版本,但它是最好的JavaScript可以做到。如果您正在尋找更好的語法,請嘗試coffeescript。
在ECMAScript中6,你可以使用Array.prototype.fill
:
[].concat.apply([], Array(N).fill(array));
它可以通過spread operator被簡化:
[].concat(...Array(N).fill(array));
但是,請注意,不像fill
,傳播經營者不能polyfilled 。
我不確定你的問題是什麼。你問什麼是最佳做法? – Gohn67
@Ofiris請澄清你的問題。 –
@ Gohn67,是的,想知道是否要走,或者有更令人愉快的語法,比如'Python'。 – Ofiris