数组的原生系列
//原生系列
填入两个参数,start 和 end
Array.prototype.slice = function (start, end) {
var result = new Array();
var start = start || 0;
var end = end || this.length;
for (var i = start; i < end; i++) {
result.push(this[i]);
}
return result;
}// call 这个形式 全部接收
function arg2arr() {
console.log(arguments);
var arr = Array.prototype.slice.call(arguments); //apply[...arguments]
console.log(arr)
}
arg2arr(1, 2, 3)//这个技巧可以很巧妙的改变入参 运用了数组的一些原生方法
function foo(...args) {
// args已经是一个真正的数组
args.log();
//丢弃args中的第一个元素
// args.shift();
//把整个args作为参数传递给console.log(..)
console.log(...args);
}
foo(1, 2, 3, 4, 5)
// 这里运用了运算符...对称而又相反的用法slice的几个特性:1.不改变原数组 2.参数从指定位开始,不包含指定位结束。3.返回值为截取出来的元素的集合
splice(start, deleteCount, item1, item2):
返回新数组, 原数组被改变了
start开始的位置,deletCount要截取的个数,后面items为要添加的元素
如果deleteCount为0,则表示不删除元素,从start位置开始添加后面的几个元素到原始的数组里面
//例子
最后更新于
这有帮助吗?