加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
test.html 1.45 KB
一键复制 编辑 原始数据 按行查看 历史
wangcai 提交于 2023-04-04 16:49 . xx‘
<script>
(function () {
function myslice(begin, end) { // ES6中接收多个实参的写法 叫rest参数
let newArr = [];
// this 表示arr1
if (this.length === 0) {
return newArr;
} // 如果要截取的数组是一个空的数组 什么也不做返回一个空数组
// 处理start特殊情况
begin = begin || 0;
if (begin < 0) {
begin = this.length + begin
} else if (begin >= this.length) {
return newArr
}
// 处理end的特殊情况 1)没有begin 没有end 2)有begin 没有end
end = end || this.length
if (end > this.length) {
end = this.length;
} else if (end <= begin) {
return newArr
}
for (let i = begin; i < end; i++) { // 遍历下标在[begin end)区间中的所有元素,添加到newArr中
newArr.push(this[i]); //
}
return newArr;
}
Array.prototype.myslice = myslice;
}())
let arr1 = [1, 3, 4, 5, 7, 9];
let res1 = arr1.myslice(2, 4); // 2 4 代表都是索引
console.log(res1); // [4, 5]
let res2 = arr1.myslice(-2, -1); // 只有begin,那么表示从begin一直截取到最后
console.log(res2); // [4,5,7,9]
let res3 = arr1.myslice();
console.log(res3) // [1, 3, 4, 5, 7, 9]
</script>
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化