使用.fill()将.push()值赋给JavaScript数组(n)次?

时间:2019-03-25 23:04:02

标签: javascript arrays

是否可以将一个值.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);
};

1 个答案:

答案 0 :(得分:4)

您可以使用concatfill

preferences = preferences.concat(Array(5).fill(a[k]));