以下是一种基本的实现方式,使用循环判断每个元素是否已存在于结果数组中,如果不存在则添加到结果数组中:

function uniqueArray(arr) {
  var result = [];
  for (var i = 0; i < arr.length; i++) {
    if (result.indexOf(arr[i]) === -1) {
      result.push(arr[i]);
    }
  }
  return result;
}

// 示例
var arr = [1, 2, 3, 2, 4, 3, 5];
var uniqueArr = uniqueArray(arr); // [1, 2, 3, 4, 5]

这种方法的缺点是时间复杂度较高,当数组较大时性能可能会受到影响。

还有一种使用 ES6 的 Set 对象的方法:

function uniqueArray(arr) {
  return Array.from(new Set(arr));
}

// 示例
var arr = [1, 2, 3, 2, 4, 3, 5];
var uniqueArr = uniqueArray(arr); // [1, 2, 3, 4, 5]

这种方法先将原数组转换为 Set 对象,Set 对象会自动去重,然后再将 Set 对象转换为数组返回。优点是代码简洁,性能较高。

JavaScript 数组去重方法:高效实现与性能对比

原文地址: https://www.cveoy.top/t/topic/okLF 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录