通过使用 jquery、下划线或本机 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
}
通过使用 jquery、下划线或本机 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
}
如果你结合 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';
});
原生 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]
请参阅MDN 文档
使用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
利用
delete a[1];
或者
delete a[a.indexOf('5')];
或者
a.splice(a.indexOf('5'), 1);
如果你不想undefined
在你的数组中有一个。
为了与 IE8 兼容,您可能需要为 indexOf 添加一个通用补丁