gpt4 book ai didi

javascript - 连接,但前置而不是附加

转载 作者:行者123 更新时间:2023-12-01 03:21:49 26 4
gpt4 key购买 nike

我有这样的情况:

const args = ['b','c','d'];
var foo = 'a';
args.unshift(foo);
fn.apply(ctx, args); // args => ['a','b','c','d'] ✅

我可以使用 concat,但这会将 foo 放在列表的末尾:

const args = ['b','c','d'];
var foo = 'a';
fn.apply(ctx, args.concat(foo)); // args => ['b','c','d','a'] ❌

我正在寻找“precat”,以便我可以创建一个新数组,并将新元素放在前面,使用 JS 执行此操作的最佳方法是什么?我愿意接受任何可以节省我一行代码的事情:)

最佳答案

我想到了两句俏皮话......

fn.apply(ctx, [foo].concat(args))

fn.call(ctx, foo, ...args)

后者使用 ES2015 spread syntax .

更新

不,没有Array#precat(),并且有充分的理由,因为这被证明是非常微不足道的。

TC39/proposal-array-precat(我在开玩笑!(也许......(这意味着一个笑话)))

Object.defineProperty(Array.prototype, 'precat', {
configurable: true,
writable: true,
value: function precat() {
return Array.prototype.concat.call([], ...arguments, this)
}
})

console.log(['e', 'f', 'g'].precat('a', ['b', 'c'], 'd'))

关于javascript - 连接,但前置而不是附加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45135424/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com