js实现数组去重的几种方法

简介: js实现数组去重的几种方法

//1、set方法去重,Array.from转化为数组
var a=[1,2,3,3,2,1,4,4]
var b = new Set(a)
b = Array.from(b)
console.log('b',b)

//2、set方法去重,展开元素赋值[...arr]
var a = [2,4,4,5,5,3,33,3,3,3]
var b = new Set(a)
b= [...b]
console.log('b',b)

//3、双重for循环
var a = [1,2,1,2,4,5,6,3,3,5]
var res = unique(a)
function unique(a) {

for(var i=0;i<a.length;i++){
    for(var j=i+1;j<a.length;j++){
        if(a[i] == a[j]){
            a.splice(j,1)
            j--
        }
    }
}
return a

}
console.log(res)

// 4、利用indexOf去重 + for循环
var array = []
for(var i = 0;i<arr.length;i++) {

if(array.indexOf(arr[i])=== -1){
    array.push(arr[i])
}

}
console.log('res',array)

5、利用filter()去重 + indexOf
var arr = [3,3,44,21,22,21,12]
var newArr = arr.filter((item,index)=>{

return arr.indexOf(item) === index  //因为indexOf 只能查找到第一个

})
console.log('newArr',newArr)

6、利用sort去重
var arr = [2,2,3,2,3,4,5,6,5]
arr.sort = arr.sort()
var a = [arr[0]]
for(var i= 1;i<arr.length;i++){

if(arr[i]!==arr[i-1]){
    a.push(arr[i])
}

}
console.log('a',a)

//7、利用includes实现数组去重
var arr= [1,1,22,2,23,33,333,223,2311,1,2,2,22,2]
var newArr = []
for(var i=0;i<arr.length;i++){

if(!newArr.includes(arr[i])){
    newArr.push(arr[i])
}

}
console.log(newArr)

相关文章
|
8天前
|
JavaScript 前端开发 索引
JavaScript中的数组的内置方法全面讲解
JavaScript 数组提供了多种内置方法来高效操作数据。如 `push()` 和 `unshift()` 分别在数组尾部和头部添加元素;`pop()` 和 `shift()` 则移除尾部和头部的元素;`splice()` 可增删元素;`slice()` 创建子数组;`join()` 将数组转化为字符串;`indexOf()` 和 `includes()` 用于查找元素;`forEach()` 遍历数组。此外,`reverse()` 和 `sort()` 改变数组顺序;`fill()` 填充数组值;`slice()` 和 `concat()` 则分别用于创建子数组和合并数组。
16 2
|
6天前
|
前端开发 JavaScript
JavaScript——promise 是解决异步问题的方法嘛
JavaScript——promise 是解决异步问题的方法嘛
14 0
|
7天前
|
JavaScript 前端开发 索引
js遍历的方法与区别
js遍历的方法与区别
18 3
|
4天前
|
JSON JavaScript 前端开发
JavaScript实现字符串转json对象的方法
JavaScript实现字符串转json对象的方法
|
3天前
|
JavaScript 测试技术 索引
js数组方法汇总
js数组方法汇总
6 1
|
4天前
|
JavaScript 前端开发 索引
JS - includes 方法和 map 方法使用方式
这篇文章介绍了JavaScript中数组的`includes`方法和`map`方法的用法,包括它们的语法、参数说明和具体的示例代码。`includes`方法用于判断数组是否包含特定元素,而`map`方法用于对数组中的每个元素执行操作并返回新数组。
9 1
|
8天前
|
JavaScript API 索引
js中的reduce()方法 讲解 和实现
`reduce()` 方法对数组元素依次应用一个回调函数,将结果累计并最终返回单一值。语法为 `reduce(callback(accumulator, currentValue, currentIndex, array), initialValue)`。参数包括累计器(初次为初始值或首元素)、当前元素值、索引及数组自身。此方法需返回值供下一轮迭代使用。常见应用场景包括计算数组总和与平均值、统计元素频率、过滤与转换数组内容及去除重复项等。例如,可通过 `reduce()` 快速计算 `[1, 2, 3, 4, 5]` 的总和或对对象属性值求和。此外,还可自定义实现 `reduce()` 方法
26 1
|
8天前
|
存储 JavaScript
js数组的创建的方法讲解
数组是ECMAScript中最常用的类型之一,它是一组有序数据的集合,每个位置可存储任意类型的数据,并且大小动态变化。创建数组可通过`new Array()`或数组字面量如`[&#39;苹果&#39;, &#39;橘子&#39;]`。ES6引入了`Array.from()`和`Array.of()`:前者可将类数组或可迭代对象转为数组,后者则直接从参数创建数组。例如,`Array.from(&#39;hello&#39;)`将字符串转为字符数组,`Array.of(&#39;张三&#39;, &#39;李四&#39;)`直接创建包含名字的数组。这些方法增强了处理数组的能力。
8 1
|
4天前
|
JavaScript 前端开发
javascript中常见获取时间戳的方法
javascript中常见获取时间戳的方法
10 0
|
4天前
|
JavaScript 前端开发
js中this是指向的哪个全局变量,改变this指向的方法有什么?
js中this是指向的哪个全局变量,改变this指向的方法有什么?
6 0