开发者社区> 问答> 正文

如何从值中删除数组中的项目?

有没有一种方法可以从JavaScript数组中删除项目?

给定一个数组:

var ary = ['three', 'seven', 'eleven'];

我想做类似的事情:

removeItem('seven', ary);

我已经研究过了,splice()但是只能按位置编号删除,而我需要一些根据其值删除项目。

展开
收起
保持可爱mmm 2020-01-13 17:41:13 441 0
1 条回答
写回答
取消 提交回答
  • 如果不允许添加到本机原型,则可以是全局函数或自定义对象的方法。它从数组中删除与任何参数匹配的所有项目。

    Array.prototype.remove = function() { var what, a = arguments, L = a.length, ax; while (L && this.length) { what = a[--L]; while ((ax = this.indexOf(what)) !== -1) { this.splice(ax, 1); } } return this; };

    var ary = ['three', 'seven', 'eleven'];

    ary.remove('seven');

    /* returned value: (Array) three,eleven */

    为了使其成为全球性的

    function removeA(arr) { var what, a = arguments, L = a.length, ax; while (L > 1 && arr.length) { what = a[--L]; while ((ax= arr.indexOf(what)) !== -1) { arr.splice(ax, 1); } } return arr; } var ary = ['three', 'seven', 'eleven']; removeA(ary, 'seven');

    /* returned value: (Array) three,eleven */

    并照顾IE8及以下版本-

    if(!Array.prototype.indexOf) { Array.prototype.indexOf = function(what, i) { i = i || 0; var L = this.length; while (i < L) { if(this[i] === what) return i; ++i; } return -1; }; }

    问题来源于stack overflow

    2020-01-13 17:41:32
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载