Javascript - 按值删除数组项

2022-08-30 04:21:11

我的情况:

var id_tag = [1,2,3,78,5,6,7,8,47,34,90];

我想删除id_tag = 90的地方并返回:

var id_tag = [1,2,3,78,5,6,7,8,47,34];

我该怎么做?


答案 1

您需要使用 JavaScript 的数组拼接方法

var tag_story = [1,3,56,6,8,90],
    id_tag = 90,
    position = tag_story.indexOf(id_tag);

if ( ~position ) tag_story.splice(position, 1);

附言有关该很酷的波浪号快捷方式的说明,请参阅此帖子:~

使用带有 indexOf 的 ~ 波浪号来检查数组中是否存在项


注意:IE < 9 不支持阵列。如果你想确保你的代码在IE中工作,你应该使用jQuery的:.indexOf()$.inArray()

var tag_story = [1,3,56,6,8,90],
    id_tag = 90,
    position = $.inArray(id_tag, tag_story);

if ( ~position ) tag_story.splice(position, 1);

如果你想支持IE<9,但页面上还没有jQuery,那么没有必要将其用于.您可以改用此多边形填充$.inArray


答案 2

如果您打算经常使用它(并在多个数组上),请扩展 Array 对象以创建未设置的函数。

Array.prototype.unset = function(value) {
    if(this.indexOf(value) != -1) { // Make sure the value exists
        this.splice(this.indexOf(value), 1);
    }   
}

tag_story.unset(56)