使用.fill()的.push()值到JavaScript数组(n)的时间?

问题描述 投票:2回答:1

是否有可能.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);
};
javascript arrays
1个回答
4
投票

你可以使用concatfill

preferences = preferences.concat(Array(5).fill(a[k]));
© www.soinside.com 2019 - 2024. All rights reserved.