【发布时间】:2017-07-17 03:11:06
【问题描述】:
我有这种情况:
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 做这件事的最好方法是什么?我愿意接受任何可以节省我一行代码的事情:)
【问题讨论】:
-
args.unshift(foo);的问题本身是否包含您的问题的答案? -
fn.apply(ctx, [foo].concat(args))或fn.call(ctx, foo, ...args) -
@PatrickRoberts 当然,这些很好,请添加答案
-
第一条评论建议
.unshift(),所以... -
@AntonioVal spread is not an operator What is SpreadElement in ECMAScript documentation? Is it the same as Spread operator at MDN?, Is …foo an operator or syntax?
标签: javascript node.js concat