从一个简单的js加密解密的例子入手

发布于:2023-03-15 ⋅ 阅读:(481) ⋅ 点赞:(0)

在JavaScript编程中,经常需要对数组进行去重操作。常见的去重方法有循环遍历、使用Set集合、使用对象属性等。本文将介绍这些方法,并通过实例代码进行演示。

一、循环遍历

循环遍历是一种比较简单的数组去重方法。它的原理是遍历数组中的每个元素,将重复的元素去除。具体实现如下:

javascriptCopy codefunction unique(arr) {
  const result = [];
  for (let i = 0; i < arr.length; i++) {
    if (result.indexOf(arr[i]) === -1) {
      result.push(arr[i]);
    }
  }
  return result;
}

const arr = [1, 2, 3, 3, 4, 5, 5, 6];
console.log(unique(arr)); // [1, 2, 3, 4, 5, 6]

循环遍历的缺点是效率低,因为它需要对数组进行多次遍历,时间复杂度为O(n^2)。

二、使用Set集合

Set集合是ES6新增的一种数据结构,它可以存储不重复的值。使用Set集合可以很方便地对数组进行去重。具体实现如下:

javascriptCopy codefunction unique(arr) {
  return [...new Set(arr)];
}

const arr = [1, 2, 3, 3, 4, 5, 5, 6];
console.log(unique(arr)); // [1, 2, 3, 4, 5, 6]

使用Set集合的优点是效率高,因为它只需要遍历一次数组,时间复杂度为O(n)。

三、使用对象属性

使用对象属性是一种比较巧妙的数组去重方法。它的原理是遍历数组中的每个元素,将元素值作为对象属性名,并将属性值设为true。如果对象中已经存在该属性名,则说明该元素是重复的,可以忽略。具体实现如下:

javascriptCopy codefunction unique(arr) {
  const obj = {};
  const result = [];
  for (let i = 0; i < arr.length; i++) {
    if (!obj[arr[i]]) {
      obj[arr[i]] = true;
      result.push(arr[i]);
    }
  }
  return result;
}

const arr = [1, 2, 3, 3, 4, 5, 5, 6];
console.log(unique(arr)); // [1, 2, 3, 4, 5, 6]

使用对象属性的优点是效率高,时间复杂度为O(n)。但是需要注意的是,该方法只适用于数组元素为字符串或数字的情况。

总结

本文介绍了JavaScript中的三种数组去重方法:循环遍历、使用Set集合、使用对象属性。这些方法各有优缺点,具体使用要根据实际情况进行选择

jsjiami.com

如果您对文章内容有不同看法,或者疑问,欢迎到评论区留言,或者私信我都可以。

也可以到上方网站,底部有我联系方式详谈。


网站公告

今日签到

点亮在社区的每一天
去签到