js常用的数组去重方法
给出以下数组
var arr1 = new Array('1','2','3','3','5','4','5','6','5','5','88');
实现对数组的去重
1、 双重for循环去重
Array.prototype.Duplicate = function() {
let arr = this;
for(let i = ; i < arr.length-; i++) {
for (let j = i+; j < arr.length; j++) {
if (arr[i] == arr[j]) {
arr.splice(j, );
j--; // 删除元素之后,需要将数组的长度也减1,否则无法去除掉后面相同的值.
};
};
};
return arr;
}
2、 利用递归调用去重
Array.prototype.Duplicate = function() {
let arr = this;
arr.sort();
function loop(index) {
if (index > ) {
if (arr[index] == arr[index-]) {
arr.splice(index, );
};
loop(index-);
};
};
loop(arr.length-);
return arr;
}
3、 利用对象去重
Array.prototype.Duplicate = function() {
let arr = this;
let obj = {}
let arr2 = []
for (let i = ; i < arr.length; i++) {
if (!obj[arr[i]]) {
obj[arr[i]] = true;
arr2.push(arr[i]);
}
};
return arr2;
}
4、 利用indexOf
Array.prototype.Duplicate = function() {
let arr = this;
let arr2 = []
for (let i = ; i < arr.length; i++) {
if (arr2.indexOf(arr[i]) == -) {
arr2.push(arr[i]);
}
};
return arr2;
}
5、 利用es6 includes方法判断
Array.prototype.Duplicate = function() {
let arr = this;
let arr2 = [];
for (let i = ; i < arr.length; i++) {
if (!arr2.includes(arr[i])) {
arr2.push(arr[i]);
}
}
return arr2
}
console.log(arr1.Duplicate().toString());
// 1,2,3,5,4,6,88
js常用的数组去重方法的更多相关文章
- Js里面的数组去重方法
去掉数组里面重复的有很多种,我这里就说一种比较简单的吧. var arr=[23,33,44,33,44,66,44,55,44,4,44,33,23]; for(var i=0;i<arr.l ...
- js中数组去重方法及性能对比
js中数组的 数组去重 常用的数组去重方法以及效率分析: 首先我们先构建一个数组,主要是用于进行去重实验,我们主要实验的量级为1000,10000,100000,500000.具体的生成数组的方法如下 ...
- JS实现数组去重方法大总结
js数组根据对象中的元素去重: var arr2 = [ { name: "name1", num: "1" }, { name: "name2&qu ...
- 原声js数组去重方法
数组去重方法 方法一 ---- 利用数组filter + indexOf方法去重 方法二 ---- 利用数组forEach + indexOf方法去重 方法三 ---- 利用数组from方法 + Se ...
- JavaScript 数组去重 方法汇总
<!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8&quo ...
- js数组去重方法分析与总结
数组去重经常被人拿来说事,虽然在工作中不常用,但他能够很好的考察js基础知识掌握的深度和广度,下面从js的不同阶段总结一下去重的方法. ES3阶段 该阶段主要通过循环遍历数组从而达到去重的目的 多次循 ...
- JS实现数组去重方法整理
前言 我们先来看下面的例子,当然来源与网络,地址<删除数组中多个不连续的数组元素的正确姿势> 我们现在将数组中所有的‘ a’ 元素删除: var arr = ['a', 'a', 'b', ...
- JS常见的几种数组去重方法
总结一下JS中用到的数组去重的方法 方法一: 该方法利用对象的属性值不能相同: function arrDelLikeElement (array) { const result = []; con ...
- js 数组去重方法汇总
<!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8&quo ...
随机推荐
- C# linq 使用Groupby lamda 获取非重复数据
).GroupBy(b => b.BasicUserId).Select(a => new MyServicesListViewModel() { HeadIcon = apiUrl + ...
- visual studio 无添加视图 选项
我是因为 UserController未继承 Controller
- IfcWallStandardCase 构件吊装模拟
wall_node = (osg::Node*)(index_node->clone(osg::CopyOp::DEEP_COPY_ALL));vc_mobileCrane->tranMo ...
- Aspose.Words操作Word.PDF,让图片和文本垂直居中,水平居中解决方案
x 环境 { "Aspose.Words": {"Version":"18.x"} } 需求与难题 生成试卷的时候,如果数学题目中有特殊符号 ...
- .NET(C#)有哪些主流的ORM框架,SqlSugar,Dapper,EF还是...
前言 在以前的一篇文章中,为大家分享了<什么是ORM?为什么用ORM?浅析ORM的使用及利弊>.那么,在目前的.NET(C#)的世界里,有哪些主流的ORM,SqlSugar,Dapper, ...
- Connection: close和Connection: keep-alive有什么区别
转自:https://www.cnblogs.com/TinyMing/p/4597136.html 看到有人问Connection: close和Connection: keep-alive有什么区 ...
- js实现之--防抖节流【理解+代码】
防抖: 理解:在车站上车,人员上满了车才发走重点是人员上满触发一次. 场景:实时搜索,拖拽. 实现: //每一次都要清空定时器,重新设置上计时器值,使得计时器每一次都重新开始,直到最后满足条件并且等待 ...
- 在 Visual Studio 中部署 ASP.NET Core 应用
另一篇:在 Docker 中手工部署 ASP.NET Core 应用 操作步骤 1. 安装 Docker For Windows(安装之前 Windows 需要 开启 Hyper-V 虚拟机功能 ) ...
- [CMD] Jenkins上执行robot命令如果出现fail不往下走其他的CMD命令了
需要在后面加上||exit 0 robot -o %disSection%.xml --include %disSection% -v ENV:%envBmk% .||exit 0
- flask 表单填充数据报错!AttributeError: 'dict' object has no attribute 'getlist'
报错信息: AttributeError: 'dict' object has no attribute 'getlist' 解决: 虽然是小毛病,不得不说还是自己太粗心大意了.