我有两个这样的数组,

arr1 = ['20', 'annL', 'annT', '25', 'annL', 'annT', '44', 'annL', 'annT']

arr2 = ['2013-11-29','50','annL','annT', '20','annL','annT', '25','annL','annT', '44','annL','annT', '96','annL','annT', '26','annL','annT', '10','annL','annT']


我想从arr2中删除arr1元素。

我用过了,

array.splice()


但无法解决问题

请帮我,

谢谢。

最佳答案

使用过滤器

Array.prototype.difference = function(arr) {
    return this.filter(function(i) {return (arr.indexOf(i) == -1);});
}


用法

arr2.difference(arr1);

[1,2,3,4].difference([1,2])
// => [3,4]


边注

我认为它在咖啡脚本中看起来也很漂亮:

 Array::difference = (arr) ->
   @filter (i) ->
     arr.indexOf(i) is -1

10-02 12:10