LoDash:具有值直到长度的完整数组

Aug*_*ger 2 lodash

我很确定该函数存在于LoDash 中,但我在文档中找不到它:

_.complete([el1, el2], 5, 0) // [el1, el2, 0, 0, 0]
Run Code Online (Sandbox Code Playgroud)

一种方法,它将完成一个数组,直到某个length,具有某个value

可以?

谢谢

mik*_*1aj 8

_.fill,但它不完全是您想要的,因为它不会改变数组长度。但是,您可以结合使用它_.assign

_.assign(_.fill(new Array(5), 0), ["a", "b"])
// returns ["a", "b", 0, 0, 0]
Run Code Online (Sandbox Code Playgroud)

请注意,这将返回一个新数组,而不是改变现有数组。

如果你想改变数组,你可以这样做:

function complete(arr, val, length) {
    var oldLength = arr.length;
    arr.length = length;
    return _.fill(arr, 0, oldLength);
}
Run Code Online (Sandbox Code Playgroud)