js的数组Array 对象方法中没有直接删除某个值的方法,但是有些情况下在一组数据中,你只知道要从数组中删除值为**的数据,不知道它的索引,这时候,如何从数组中把这个值移除呢?

方法

描述

连接两个或更多的数组,并返回结果。

把数组的所有元素放入一个字符串。元素通过指定的分隔符进行分隔。

删除并返回数组的最后一个元素

向数组的末尾添加一个或更多元素,并返回新的长度。

颠倒数组中元素的顺序。

删除并返回数组的第一个元素

从某个已有的数组返回选定的元素

对数组的元素进行排序

删除元素,并向数组添加新元素。

返回该对象的源代码。

把数组转换为字符串,并返回结果。

把数组转换为本地数组,并返回结果。

向数组的开头添加一个或更多元素,并返回新的长度。

返回数组对象的原始值

splice方法是可以删除数组中数据的方法,但是它是通过索引(index)来删除的,所以还是无法做到删除指定值。下面来补一下splice方法:

定义和用法

splice() 方法向/从数组中添加/删除项目,然后返回被删除的项目。

注释:该方法会改变原始数组。

语法

arrayObject.splice(index,howmany,item1,.....,itemX)

参数

描述

index

必需。整数,规定添加/删除项目的位置,使用负数可从数组结尾处规定位置。

howmany

必需。要删除的项目数量。如果设置为 0,则不会删除项目。

item1, …, itemX

可选。向数组添加的新项目。

返回值

类型

描述

Array

包含被删除项目的新数组,如果有的话。

说明

splice() 方法可删除从 index 处开始的零个或多个元素,并且用参数列表中声明的一个或多个值来替换那些被删除的元素。

如果从 arrayObject 中删除了元素,则返回的是含有被删除的元素的数组。

方法一:自己定义函数:

function removeByValue(arr, val) {
for(var i=0; i
if(arr[i] == val) {
arr.splice(i, 1);
break;
}
}
}
var somearray = ["mon", "tue", "wed", "thur"]
removeByValue(somearray, "tue");
//somearray will now have "mon", "wed", "thur"

方法二:利用jquery的inArray方法:

var arrays = ['a','b','c','d'];
arrays.splice($.inArray('c',arrays),1);
alert(arrays);

结果: a,b,d;