拼接或取消移位 return 修改后的数组

Make splice or unshift return the modified array

我最近开始习惯链接函数调用的想法,它让我的生活变得轻松多了。但是 JavaScript 的内置数组函数似乎不太配合。

如何分别使unshiftsplicereturn修改而不是数组和删除项的长度?我假设有一种方法可以通过对 callapply.

进行一些棘手的调用

我不得不特意为我的用例使用 concat,有更好的方法吗?

Eg: 
 a = [2,3,4,5]
 one solution : somethingElse([1].concat(a))
 I wanted to do something like:  somethingElse(a.unshift(1));
 or may be like this: somethingElse(a.splice(0,0,1));

一种可能的方法是按以下方式覆盖原始 prototype 方法:

var unshift = Array.prototype.unshift;
Array.prototype.unshift = function() {
    unshift.apply(this, arguments);
    return this;
};

[1, 2, 3].unshift(0);  // [0, 1, 2, 3]

此外,这是相当不好的做法并且你应该避免它。相反,您可以创建自己的具有唯一名称的原型方法并使用它。

使用括号分组,f.e。切片后 return 修改数组:

var a = [2,3,4,5];
somethingElse((a.splice(0,0,1), a));