首页 > 解决方案 > 生成阵列的无重复版本

问题描述

生成阵列的无重复版本。函数应该处理使用排序数组的迭代器。所以我可以做第一部分,但不明白我什至会如何使用 isSorted 或迭代器。

_.uniq = function(array, isSorted, iterator) {
  var unique = [];

  for (var i = 0; i < array.length; i++) {
    var ele = array[i];

    if (unique.indexOf(ele) === -1) {
      unique.push(ele);
    }
  }

  return unique;
};

标签: javascript

解决方案


如果您乐于创建一个未排序且可以忽略 IE11 的新数组,这是一种简单而优雅的方式。

  let fruits = ['pear','apple','banana','orange','apple','mango','banana','pear'];
  //https://www.codementor.io/tips/8243973127/how-to-remove-duplicates-within-a-javascript-array-using-es6-in-just-one-line
  //Array.from & new Set not supported in IE11, MDN has details.

let fruits_without_duplicates = Array.from(new Set(fruits));

console.log(fruits_without_duplicates); //["apple", "banana", "orange", "mango"]

推荐阅读