我得到一个值,这个值一定和一个数组中的某个值相等,我如何找到这个值在数组中的位置并且删掉它呢。
var removeFromArray = function (arr, val) {
var index = $.inArray(val, arr);
if (index >= 0)
arr.splice(index, 1);
return arr;
};
console.log(removeFromArray([1, 2, 3, 4, 5], 4));追问
var val = 4; // 你要删除的值
arr = _.without(arr, val);
console.log(arr);
var index = $.inArray(val, arr);
if (index >= 0)
arr.splice(index, 1);
return arr;
};
console.log(removeFromArray([1, 2, 3, 4, 5], 4));追问
可以解释下不。大神
追答$.inArray函数是去查询数组中值的index,找到返回index,否则返回-1。
这样,如果index不是负数的话,就是找到了。
然后splice方法是原生JS中的删除和增加元素的方法,第一个参数是要删除的元素的起始索引号,第二个参数是要删除的数量。所以,我们就从找到的index开始删除1个,就是删除了查找的那个。
最后返回删完的数组。当然,如果没找到,就没经过if,就返回原始数组。
会报错说$.inArray不是function
追答你用的什么版本的jQuery?
追问搞错了,是
underscore
underscore直接用without呀。
表达式写在哪里/
追答没明白你说的。
var arr = [1, 2, 3, 4, 5]; // 你的数组var val = 4; // 你要删除的值
arr = _.without(arr, val);
console.log(arr);
温馨提示:答案为网友推荐,仅供参考