如果我有数组,例如:
a = ["a", "b", "c"]
我需要类似的东西
a.remove("a");
我怎样才能做到这一点?
var newArray = [];
var a=["a","b","c"];
for(var i=0;i<a.length;i++)
    if(a[i]!=="a") 
        newArray.push(a[i]);
从较新版本的 JavaScript 开始:
var a = ["a","b","c"];
var newArray = a.filter(e => e !== "a");
remove = function(ary, elem) {
    var i = ary.indexOf(elem);
    if (i >= 0) ary.splice(i, 1);
    return ary;
}
提供您的目标浏览器支持array.indexOf,否则使用该页面上的后备代码。
如果您需要删除所有相等的元素,请filter按照 Rocket 的建议使用:
removeAll = function(ary, elem) {
    return ary.filter(function(e) { return e != elem });
}
如果您使用的是现代浏览器,则可以使用.filter.
Array.prototype.remove = function(x){
    return this.filter(function(v){
        return v !== x;
    });
};
var a = ["a","b","c"];
var b = a.remove('a');
我想出了一个简单的解决方案来从数组中省略必要的元素:
<script>
    function myFunction()
    {
        var fruits = ["One", "Two", "Three", "Four"];
        <!-- To drop the element "Three"-->
        <!-- splice(elementid, number_of_element_remove) -->
        fruits.splice(2, 1);
        var x = document.getElementById("demo");
        x.innerHTML = fruits;
    }
</script>
let xx = ['a','a','b','c'];  // Array
let elementToRemove = 'a';  // Element to remove
xx =xx.filter((x) => x != elementToRemove) // xx will contain all elements except 'a'
如果您不介意额外的有效负载(大约 4 kB 压缩和 gzip 压缩),您可以使用Underscore.js 库的 without 功能:
_.without(["a", "b", "c"], "a");
Underscore.js会给你这个功能+很多非常方便的功能。