首页 > 解决方案 > 具有唯一项的库函数(删除重复项)数组未运行

问题描述

我正在尝试制作一个“库函数”来删除重复的数组条目。我已经写了以下代码段,但它似乎不起作用。任何人都可以帮助修复它吗?

var arr1 = [5, 4, 2, 6, 9, 2, 8, 1, 6];

Array.prototype.unique = function(arr){
  var result = [];
    arr.forEach(item){
      if(result.indexOf(item) === -1){
        result.push(item);
      }
    }
    return result;
}

console.log(arr1.unique());

标签: javascript

解决方案


我相信您正在尝试做的是以下内容。我所做的小改动是使用 this 关键字来引用数组本身。该函数还需要在 foreach(fn => {}) 内。

Array.prototype.unique = function() {
   var result = [];
   this.forEach(function(item) {
     if(result.indexOf(item) === -1) {
      result.push(item);
     }
   })
 return result;
}

制作一个在 foreach 循环中使用箭头函数并使用包含的版本,因此您有一些选择。

Array.prototype.unique = function() {
  var result = [];
  this.forEach(item => {
    if (!result.includes(item)) {
      result.push(item);
    }
  })
 return result;
}

推荐阅读