删除没有内置函数的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

如果不使用诸如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
仍然与以前相同:

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循环并重建一个新的数组,其中包含除你想要删除的项目之外的所有项目。我只是在挑战自己,在不使用任何内置函数的情况下编写一个排序算法。我还没有尝试过任何方法,因为我对编程相当陌生,在谷歌搜索问题时也没有发现任何东西。排序算法改变元素的数量是不寻常的。