JavaScript Array splice()方法的替代方法
数组splice()方法 是JavaScript的一个方法,本文将讨论这个方法的替代方法。以下是讨论的两个示例。
方法1
在这个方法中,startIndex(从哪里开始删除元素)和count(要删除的元素数量)是变量。如果未传递count,则将其视为1。运行一个 while循环 ,直到count大于0,开始删除所需元素并推入一个新数组。在循环结束后返回这个新数组。
示例: 此示例显示了上面解释的方法。
<body style="text-align:center;">
<h1 style="color:green;">
GeeksforGeeks
</h1>
<p id="GFG_UP">
</p>
<button onclick="myGFG()">
Click Here
</button>
<p id="GFG_DOWN"></p>
<script>
var arr = [0, 3, 1, 5, 2, 7, 4, 9, 10];
var up = document.getElementById("GFG_UP");
up.innerHTML =
"Alternative of Array splice() method in JavaScript."+
" <br>Array = [" + arr + "]";
var down = document.getElementById("GFG_DOWN");
function mySplice(arr, ind, ct) {
// if ct(count) not passed in function call.
if (typeof ct == 'undefined') {
ct = 1;
}
var rem = [];
while (ct--) {
var indRem = ind + ct;
//pushing the elements rem array
rem.push(arr[indRem]);
// removing the element from original array.
arr[indRem] = arr.pop();
}
// returning the removed elements
return rem;
}
function myGFG() {
down.innerHTML =
"Removed Elements - " + mySplice(arr, 4, 3);
}
</script>
</body>
输出:
方法2
在这个方法中,使用 slice()方法 来获取被移除的元素,同时也用这个方法来获取输出数组。这个方法还需要传入要插入数组的新元素作为参数。
示例: 这个例子展示了上述方法。
<body style="text-align:center;">
<h1 style="color:green;">
GeeksforGeeks
</h1>
<p id="GFG_UP">
</p>
<button onclick="myGFG()">
Click Here
</button>
<p id="GFG_DOWN"></p>
<script>
var arr = [0, 3, 1, 5, 2, 7, 4, 9, 10];
var up = document.getElementById("GFG_UP");
up.innerHTML = "Alternative of Array splice() "+
"method in JavaScript.<br>Array = [" + arr + "]";
var down = document.getElementById("GFG_DOWN");
Array.prototype.altSplice = function(s, tRemv, insert ) {
var rem = this.slice( s, s + tRemv );
var temp =
this.slice(0, s).concat( insert, this.slice( s + tRemv ) );
this.length = 0;
this.push.apply(this, temp );
return rem;
};
function myGFG() {
down.innerHTML =
"Splice result - " +
arr.altSplice(3, 2, 6) +
"<br>Original array - " + arr;
}
</script>
</body>
输出: