拼接或取消移位 return 修改后的数组
Make splice or unshift return the modified array
我最近开始习惯链接函数调用的想法,它让我的生活变得轻松多了。但是 JavaScript 的内置数组函数似乎不太配合。
如何分别使unshift
或splice
return修改而不是数组和删除项的长度?我假设有一种方法可以通过对 call
或 apply
.
进行一些棘手的调用
我不得不特意为我的用例使用 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));
我最近开始习惯链接函数调用的想法,它让我的生活变得轻松多了。但是 JavaScript 的内置数组函数似乎不太配合。
如何分别使unshift
或splice
return修改而不是数组和删除项的长度?我假设有一种方法可以通过对 call
或 apply
.
我不得不特意为我的用例使用 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));