初步简单模拟splice方法,有助于深刻理解和记忆
Array.prototype.savaSplice = function (m, n) {
//创建数组副本
let clone = []
clone.push(…this)
//创建数据,用于保存被裁剪的数据
let afterSplice = []
let len = this.length
for (let i = 0; i < len; i++) {
if (i === m) {
for (let j = i; j < len; j++) {
clone.pop()
}
for (let k = i + n; k < len; k++) {
clone.push(this[k])
}
for (let l = 0; l < n; l++) {
afterSplice.push(this[i + l])
}
}
}
for (let s = 0; s < len; s++) {
this.pop()
}
this.push(...clone)
return afterSplice
}
let arr1 = [1, 3, 6, 2, 6, 9, 6, 3]
let arr2 = arr1.savaSplice(4, 2)
console.log(arr1, arr2) //[ 1, 3, 6, 2, 6, 3 ] [ 6, 9 ]