删除没有内置函数的JavaScript数组项?
如果不使用诸如pop()和splice()之类的内置函数,如何从JavaScript数组中删除一个项 如果你想从一开始就删除一些东西删除没有内置函数的JavaScript数组项?,javascript,arrays,Javascript,Arrays,如果不使用诸如pop()和splice()之类的内置函数,如何从JavaScript数组中删除一个项 如果你想从一开始就删除一些东西 让arr=[1,2,3,4]; 设[c,d,…newarr]=arr; log(newarr)您可以使用数组和 如果你想从一开始就删除一些东西 让arr=[1,2,3,4]; 设[c,d,…newarr]=arr; console.log(newarr)如果您不关心要重新索引的数组,可以使用,但它会在删除的值所在的位置留下一个未定义的条目,并且数组的.length
让arr=[1,2,3,4];
设[c,d,…newarr]=arr;
log(newarr)
您可以使用数组和
如果你想从一开始就删除一些东西
让arr=[1,2,3,4];
设[c,d,…newarr]=arr;
console.log(newarr)
如果您不关心要重新索引的数组,可以使用,但它会在删除的值所在的位置留下一个未定义的条目,并且数组的.length
仍然与以前相同:
const arr=[1,2,3,4,5];
log(arr.length,`[${arr.join(',')}]`);
删除arr[2];
log(arr.length,`[${arr.join(',')}]`)
如果您不关心要重新索引的数组,可以使用,但它会在删除的值所在的位置保留一个未定义的条目,并且数组的.length
仍将与以前相同:
const arr=[1,2,3,4,5];
log(arr.length,`[${arr.join(',')}]`);
删除arr[2];
log(arr.length,`[${arr.join(',')}]`)代码>您可以使用slice
const arr=[1,2,3,4,5];
console.log(arr.slice(0,4));//[1,2,3,4];
console.log(arr.slice(1,5));//[2,3,4,5];
您可以使用slice
const arr=[1,2,3,4,5];
console.log(arr.slice(0,4));//[1,2,3,4];
console.log(arr.slice(1,5));//[2,3,4,5];
感谢Paul在评论部分提出的建议arr.length--代码>。因为我以前使用的是pop(),所以我想删除的项目已经结束了,所以效果非常好。感谢Paul在评论部分提出的建议arr.length-->代码>。因为我以前使用的是pop(),所以我想删除的项目已经结束了,所以效果非常好。您可以创建自己的方法,如下所示:
Array.prototype.removeItem = function(item) {
for (i = 0; i < this.length; i++) {
if (this[i] === item) {
for (var j = i; j < this.length - 1; j++) {
this[j] = this[j + 1];
}
this.length = this.length - 1
return;
}
}
}
var items = ['a', 'b', 'c', 'd'];
items.removeItem('c');
Array.prototype.removietem=函数(项){
对于(i=0;i
您可以创建自己的方法,如下所示:
Array.prototype.removeItem = function(item) {
for (i = 0; i < this.length; i++) {
if (this[i] === item) {
for (var j = i; j < this.length - 1; j++) {
this[j] = this[j + 1];
}
this.length = this.length - 1
return;
}
}
}
var items = ['a', 'b', 'c', 'd'];
items.removeItem('c');
Array.prototype.removietem=函数(项){
对于(i=0;i
如果它来自数组的末尾:arr.length--代码>到目前为止您尝试了什么?你为什么需要这个?我并不建议你使用它(只使用内置函数),但是你可以做一个for循环并重建一个新的数组,其中包含除你想要删除的项目之外的所有项目。我只是在挑战自己,在不使用任何内置函数的情况下编写一个排序算法。我还没有尝试过任何方法,因为我对编程相当陌生,在用谷歌搜索问题时没有发现任何东西。排序算法改变元素数量是不寻常的。如果是从数组末尾开始:arr.length--代码>到目前为止您尝试了什么?你为什么需要这个?我并不建议你使用它(只使用内置函数),但是你可以做一个for循环并重建一个新的数组,其中包含除你想要删除的项目之外的所有项目。我只是在挑战自己,在不使用任何内置函数的情况下编写一个排序算法。我还没有尝试过任何方法,因为我对编程相当陌生,在谷歌搜索问题时也没有发现任何东西。排序算法改变元素的数量是不寻常的。