是否可以将一个值.push()
到一个数组中,但是将推送的值复制n
次而无需使用传统的循环来执行复制?例如,使用.fill()
。我所看到的示例声明了一个new Array()
,它的长度为n
,而.fill()
的长度是一个值。但是,我还没有看到任何有关.push()
的示例,所以我什至不确定是否有可能。
我要寻找的示例:
var my_array = [];
for (var i = 0; i < 5; i++) {
my_array.push(5);
};
场景:
我正在从三个不同的数组或对象中提取值,以填充将通过Munkres(匈牙利)算法运行的单个矩阵,以避免引入另一个循环,我想将.push
值引入到矩阵,然后使用.fill()
重复值n
次。
示例:
var s = […];
var a = […];
var p = […];
var matrix = [];
for (var i = 0; i < s.length; i++) {
var preferences = [];
for (var j = 0; j < p.length; j++ {
var pid = p[j];
for (var k = 0; k < a.length; k++ {
if (pid == a[k]) {
for (var l = 0; l < 5; l++) { // <-- THIS.
preferences.push(a[k]);
};
};
};
};
matrix.push(preferences);
};
答案 0 :(得分:4)
您可以使用concat
和fill
:
preferences = preferences.concat(Array(5).fill(a[k]));