当前位置:网站首页>JS中的数字数组去重
JS中的数字数组去重
2022-06-25 22:09:00 【wen_文文】
// 方法1: ES6中的Set数据结构法
function arrRemoval(array) {
// let set = Array.from(new Set(array));
let set = [...new Set(array)];
return set;
}
//方法2:定义一个空的新数组,每次判断新数组中是否包含当前元素,如果不包含则添加
function arrRemoval(array) {
let result = [];
array.forEach((ele,ind) =>{
if(!result.includes(ele)) {
result.push(ele);
}
})
return result;
}
//方法3: indexOf法, indexof(item):返回数组中找到的第一个元素的下标
function arrRemoval(array) {
let result = [];
result = array.filter((ele,ind) =>{
return array.indexOf(ele)===ind;
})
return result;
}
//方法4: reduce法:
function arrRemoval(array) {
let result = [];
// 定义初始的pre为[]
result = array.reduce( function(pre, item){
// return pre.indexOf(item)!==-1 ? pre : pre.concat(item);
return pre.indexOf(item)!==-1 ? pre : [...pre,item];
}, [])
return result;
}
// 方法5:利用对象中的key不可重复的特性,如果key重复则后面设置的value覆盖前面的value
function arrRemoval(array) {
let result = {};
// 定义初始的pre为[]
array.forEach((ele,ind) => {
result[ele] = ind;
});
// console.log(Object.keys(result)); //["1", "2", "3", "4", "5"]
return Object.keys(result).map((ele,ind)=>{
// ~~返回的结果为数值型
// return ~~ele;
return parseInt(ele);
})
}
// 方法6: 先排序, 然后比较第i项和i+1项,
function arrRemoval(array) {
let result = [];
array.sort();
for(let i=0;i<array.length;i++) {
if(array[i] !== array[i+1]) {
result.push(array[i]);
}
}
return result;
}
// 方法7: 用当前元素和数组后面的每一项比较,如果存在相等项则丢弃当前元素,不存在相等的则加入新数组中
function arrRemoval(array) {
let result = [];
for(let i=0;i<array.length;i++) {
for(let j=i+1;j<array.length;j++) {
if(array[i] == array[j]) {
i++;
}
}
result.push(array[i]);
}
return result;
}
边栏推荐
- 聊聊swoole或者php cli 进程如何热重启
- mysql5.7版本在配置文件my.ini[mysqld]加上skip-grant-tables后无法启动
- util. Collection and encapsulation of JS tool functions
- QT Chinese and English use different fonts respectively
- Line height for small use
- 谈一谈生产环境中swoole协程创建数量控制机制
- sqlServer2008中float类型数据与datetime类型数据互转
- Audio basics and PCM to WAV
- unsigned与signed之大白话
- 6.常用指令(上)v-cloak,v-once,v-pre
猜你喜欢

使用百度地图API在地图中设置一个覆盖物(InfoWindow),可自定义窗口内容

CXF

达梦数据库修改字段信息采坑记

流数据

Leetcode 513. 找树左下角的值

Qtcreator formatting code

为什么Integer的比较最好使用equals

1.8 billion pixel Mars panorama Ultra HD released by NASA, very shocking

Use Baidu map API to set an overlay (infowindow) in the map to customize the window content

SSL/TLS、对称加密和非对称加密和TLSv1.3
随机推荐
MySQL自定义函数实例
聊聊swoole或者php cli 进程如何热重启
Download the latest V80 version of Google Chrome
后序线索二叉树
IDEA中如何生成get/set方法
1.8 billion pixel Mars panorama Ultra HD released by NASA, very shocking
Stream in PHP socket communication_ Understanding of select method
C ++ 引用与指针总结
Audio basics and PCM to WAV
proxy
产品经理如何把控产品开发的进度
如何进行流程创新,以最经济的方式提升产品体验?
登录拦截器
Anaconda一文入门笔记
树莓派开机发送热点进行远程登录
Gradle的环境安装与配置
Reprint: detailed explanation of qtablewidget (style, right-click menu, header collapse, multiple selection, etc.)
中序线索二叉树
Two ways to center block level elements
DPVS-FullNAT模式keepalived篇