可能重复:
Delete an array key when it contains a string in javascript
使用jquery,underscore或native javaScript我想删除或添加元素到数组。
这是我的代码;
var a = ['4', '5'];
var remove = false/true;
if(!remove) {
a.push('6'); // it works
} else {
a.remove(5); // I have no idea how to perform this in a very dry way
}
答案 0 :(得分:2)
原生JavaScript:
a.splice(1, 1); // ['5']
a // ['4']
您可以使用新元素替换值:
var a = [1, 2, 3];
a.splice(1, 1, -1, -2) // [2]
a // [1, -1, -2, 3]
答案 1 :(得分:2)
如果你结合使用NULL和dystroy的答案,你可以在纯粹的js中得到Niko的答案(ish):
a.splice(a.indexOf('5'),1);
或者如果你想删除多个'5'
var p;
while( (p = a.indexOf('5')) != -1 ){
a.splice(p, 1);
}
一种更简洁的方法,相当不理想,只支持现代浏览器(并且还创建一个新数组) - 但仍然有效且更灵活:
a = a.filter(function(v){
return v != '5';
});
答案 2 :(得分:0)
使用
delete a[1];
或
delete a[a.indexOf('5')];
或
a.splice(a.indexOf('5'), 1);
如果您不希望阵列中有undefined
。
为了与IE8兼容,您可能需要add a common patch for indexOf
答案 3 :(得分:0)
答案 4 :(得分:0)
使用splice()
方法:
if(typeof Array.prototype.remove === "undefined") {
Array.prototype.remove = function(e) {
this.splice(this.indexOf(e), 1);
}
}
var a = ['4', '5'];
a.remove('5');
alert(a);
打印:
4