
今天web建站小编给大家介绍几种数组去重的方法,其中有es6语法写的,也有低版本浏览器兼容需要的写。
1、es6写法:利用Set去重(写法最简单,但不兼容低版本)
const arr = [1,1,'ok','mi',3,3,'ok','mi',5,5]; const setData = Array.from(new Set(arr)); console.log(setData); //[1, 'ok', 'mi', 3, 5]
2、es6写法:利用includes去重
const arr = [1,1,'ok','mi',3,3,'ok','mi',5,5];
const removeRepeatData = (arr) => {
let repeatArr = [];
for (let i = 0,len = arr.length ; i < len; i++)
if (!repeatArr.includes(arr[i])) repeatArr.push(arr[i])
return repeatArr;
}
console.log(removeRepeatData(arr))
// [1, 'ok', 'mi', 3, 5]
3、es6写法:利用filter去重,(需要和indexOf一起用)
const arr = [1,1,'ok','mi',3,3,'ok','mi',5,5]; const removeRepeatData = (arr) => arr.filter((item,index) => arr.indexOf(item,0) === index); console.log(removeRepeatData(arr)) // [1, 'ok', 'mi', 3, 5]
4、双重for循环去重(兼容低版本)
const arr = [1,1,'ok','mi',3,3,'ok','mi',5,5];
const removeRepeatData = (arr) => {
for (let i=0,len = arr.length; i < len; i++) {
for (let j = i + 1; j < len; j++) {
if (arr[i] === arr[j]) {
arr.splice(j, 1);
j--;
len--;
}
}
}
return arr;
};
console.log(removeRepeatData(arr))
// [1, 'ok', 'mi', 3, 5]
5、indexOf去重(兼容低版本最合适,比双重for循环简单)
const arr = [1,1,'ok','mi',3,3,'ok','mi',5,5];
const removeRepeatData = (arr) => {
let repeatArr = [];
for (let i = 0,len = arr.length ; i < len; i++)
if (repeatArr.indexOf(arr[i]) === -1) repeatArr.push(arr[i])
return repeatArr;
}
console.log(removeRepeatData(arr))
//[1, 'ok', 'mi', 3, 5]
css3+jquery手风琴式幻灯插件(支持IE平台请使用IE8以上浏览器)
标签: filter, for循环, includes, indexOf, set, 数组去重, 浏览器兼容
上面是“javascript(es6)数组去重方法介绍(根据不同浏览器选择不同方法)”的全面内容,想了解更多关于 js 内容,请继续关注web建站教程。
当前网址:https://m.ipkd.cn/webs_2433.html
声明:本站提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请发送到邮箱:admin@ipkd.cn,我们会在看到邮件的第一时间内为您处理!

javascript如何解析动态属性
Webdraw
动漫花园同步站网页版官网首页入口