如何在 JavaScript 中使用包装对数组进行切片
假设我们需要编写一个替代默认 Array.prototype.slice() 的数组方法。通常,Array.prototype.slice() 方法会接收两个参数,分别是起始索引和结束索引,并返回一个从起始索引到结束索引-1 的原始数组的子数组。
我们的目的是让 slice() 方法返回一个从起始索引到结束索引的子数组,而不是结束索引-1。实现此目标的代码如下。我们使用 for 循环遍历数组,这种遍历方式实际上比我们拥有的任何数组方法都要快。然后返回所需的子数组,最后我们使用刚刚编写的函数替代 Array.prototype.slice() −
示例
const arr = [5, 5, 34, 43, 43, 76, 78, 3, 23, 1, 65, 87, 9];
const slice = function(start = 0, end = this.length-1){
const part = [];
for(let i = start; i <= end; i++){
part.push(this[i]);
};
return part;
};
Array.prototype.slice = slice;
console.log(arr.slice(0, 4));
console.log(arr.slice(5, 8));
console.log(arr.slice());输出
控制台中输出的内容为 −
[ 5, 5, 34, 43, 43 ] [ 76, 78, 3, 23 ] [ 5, 5, 34, 43, 43, 76, 78, 3, 23, 1, 65, 87, 9 ]
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP