我有:
var array = new Array();
array.push("A");
array.push("B");
array.push("C");
我希望能够做到:
array.remove (" B ");
但是没有移除函数。我该怎么做呢?
我有:
var array = new Array();
array.push("A");
array.push("B");
array.push("C");
我希望能够做到:
array.remove (" B ");
但是没有移除函数。我该怎么做呢?
当前回答
你得自己写。您可以对数组进行循环,获取要删除的项的索引,并使用splice删除它。
或者,您可以创建一个新数组,遍历当前数组,如果当前对象与您想要删除的对象不匹配,则将其放入新数组中。
其他回答
use:
array.splice(2, 1);
这将从数组中删除一项,从索引2开始(第3项)
你得自己写。您可以对数组进行循环,获取要删除的项的索引,并使用splice删除它。
或者,您可以创建一个新数组,遍历当前数组,如果当前对象与您想要删除的对象不匹配,则将其放入新数组中。
一行列表
让我们来解决这个数组的问题:
var array = ['A', 'B', 'C'];
1. 只删除第一个: 使用“如果您确定项目存在”
array.splice(array.indexOf('B'), 1);
2. 只删除最后一个: 使用“如果您确定项目存在”
array.splice(array.lastIndexOf('B'), 1);
3.删除所有出现的情况:
array = array.filter(v => v !== 'B');
使用array.splice
/*array.splice(index , howMany[, element1[, ...[, elementN]]])
array.splice(index) // SpiderMonkey/Firefox extension*/
array.splice(1,1)
来源: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/splice
DEMO
你需要用.indexOf()找到你要找的位置,然后用.splice()删除它
function remove(arr, what) {
var found = arr.indexOf(what);
while (found !== -1) {
arr.splice(found, 1);
found = arr.indexOf(what);
}
}
var array = new Array();
array.push("A");
array.push("B");
array.push("C");
remove(array, 'B');
alert(array);
这将解决所有问题。