JS js实现数组以及字符串去重的方法
JS js实现数组去重的方法,字符串同样可以用
- 一.new Set
- 二.创新数组查询判断加入
- 三.原数组前后查询比较删除
- 四.双重for循环遍历去重
- 五.利用对象不能存储重复属性的特点
- 方法1: 循环遍历对象
- 方法二:遍历数组,将其作为键名存入对象中,对对象中键名的进行判断,当其内容不在对象中时,将其存入,并将其存入新数组中.
- 字符串去重
一.new Set
set数据类型不允许有重复数据,会自动清除重复数据;
通过合并展开运算符…对set类型转化为数组操作.
var arr=[1,2,3,1,2,3,1,2,3];
var set=new Set(arr);
newArr=[...set];
console.log(newArr);
二.创新数组查询判断加入
创建一个新数组,是一个空数组[]
循环遍历原始数组
将 原始数组的数据 通过 数组.push() 方法 写入到新数组中;
使用 indexOf 在 新数组中 查询要写入的数组数据;
如果 结果是 -1 证明 新数组中没有原始数组的数据;
再触发执行写入操作.
var arr=[1,2,3,1,2,3,1,2,3];var new1=[];for(i=0;i<=arr.length-1;i++){if(new1.indexOf(arr[i])===-1){new1.push(arr[i]);}}document.write( new1 );
三.原数组前后查询比较删除
遍历数组,分别查询第一次出现该元素的索引下标,以及最后一次出现该元素的索引下标;
比较两个下标大小是否相等,如果相等,说明该元素无重;
如果不等则说明有重复,则去掉后出现的,并且为了防止数组塌陷,对循环变量进行处理;
var arr=[1,2,3,1,2,3,1,2,3];for(i=0;i<=arr.length-1;i++){var a=arr.indexOf(arr[i]);var b=arr.lastIndexOf(arr[i]);if(a===b){continue;}else{arr.splice(b,1);i--;}}document.write( arr );
四.双重for循环遍历去重
每次循环 是 当前循环单元 和 之后的所有单元进行比较;
如果 起始单元的数据 和 之后单元的数据 相同 删除 之后单元的数据;
1, 外层循环 从第一个单元 至 倒数第二个单元
2, 内层循环 从 当前循环起始单元的下一个单元 至 最后一个单元
3, 如果 当前循环起始单元存储的数据 和 之后循环单元存储的数据相同
删除 之后循环的单元
var arr = [1, 2, 3, 1, 2, 3, 1, 2, 3];for (j = 0; j <= arr.length - 1; j++) {for (i = j + 1; i < arr.length; i++) {if (arr[j] === arr[i]) {arr.splice(i, 1);i--;}}};
console.log(arr);
五.利用对象不能存储重复属性的特点
方法1: 循环遍历对象
1, 创建一个空对象 创建一个空数组
2, 循环遍历数组
将 数组单元的数据 作为 对象的属性 新增对象的单元
存储的数据是任意什么数据都可以
3, 循环遍历对象 将 对象的属性作为数据 存储到空数组中
数组.push()
var arr = [1, 2, 3, 1, 2, 3, 1, 2, 3];var obj = {};var arr2=[];for(i=0;i<arr.length;i++){obj[arr[i]]=1;}for(value in obj){arr2.push(value*1);//转化为数值类型写入新数组}console.log(arr2);
方法二:遍历数组,将其作为键名存入对象中,对对象中键名的进行判断,当其内容不在对象中时,将其存入,并将其存入新数组中.
var arr = [1, 2, 3, 1, 2, 3, 1, 2, 3];var obj = {};var arr2=[];for(i=0;i<arr.length;i++){if(!(obj[arr[i]])){//当obj中没有arr[i]时,obj[arr[i]]===undefined;转化为布尔值为false,前面加个非判断符!转为true(即当obj中没有arr[i]时,进行写入新数组的操作)obj[arr[i]]=1;arr2.push(arr[i]);}}console.log(arr2);
字符串去重
由于字符串可以直接转为数组,去重后,再转为字符串.所以前几种方法,均可用
转化方法:
var str=`123456123456`;
var arr=str.split('');
//此处为去重方法
var obj = {};
var arr2=[];for(i=0;i<arr.length;i++){if(!(obj[arr[i]])){obj[arr[i]]=1;arr2.push(arr[i]);}}
//以上为去重方法
var newStr=arr2.join();
console.log(newStr);
JS js实现数组以及字符串去重的方法相关推荐
- js中的数组和字符串的一些方法
数组的一些方法: 1.join()和split()方法 <script type="text/javascript"> var x; var a=new Array() ...
- 数组,字符串去重 ES6方法
该方法是使用ES6 set方法,它类似于数组,但是成员的值都是唯一的,没有重复的值. 但它本身就是一个数据结构:set数据结构,所以数据需要使用扩展运算符把set数据转换成数组的形式.同样字符转需要使 ...
- js中json数组 和 字符串 互转
js中json数组 和 字符串 互转 const jsonStr1 = JSON.stringify( res.responseObject); //json转字符串.//const area = J ...
- js之遍历数组、字符串
js之遍历数组.字符串 1.遍历数组 <!DOCTYPE html> <html lang="en"> <head><meta chars ...
- js中给数组中对象去重
被问到如何给数组中对象去重,想到set答案肯定错误的,这个平时工作中用到的不多,查阅资料,找到给数组中对象去重的方法,利用对象属性名的唯一性,怪自己当时没想到. 方法一: let ary=[{id: ...
- JS中去除数组中重复元素的方法
JS中去除数组中重复元素的方法 第一种方法:使用数组中的splice方法 splice():删除元素,并向数组添加新元素,并返回被删除的元素 function f1(){var _arr=[8,5,0 ...
- js中的数组Array定义与sort方法使用示例
js中的数组Array定义与sort方法使用示例 Array的定义及sort方法使用示例 Array数组相当于java中的ArrayList 定义方法: 1:使用new Array(5 )创建数 ...
- php数组去重并重新排序,php数组去重_php对数组中字符串去重并排序例子
摘要 腾兴网为您分享:php对数组中字符串去重并排序例子,智慧大学,长沙银行,愈加,虚拟机等软件知识,以及掌盟,爱情测试打分,7150f打印机驱动,e洗车,报时闹钟,套图,音影风暴,连环夺宝,看门狗2 ...
- JS中的数组和字符串
1.Array对象用于定义数组 //方式一var arr=new Array(1,2,3);alert(arr);//方式二 var arr=[1,2,3]; alert(arr); //特点:JS数 ...
最新文章
- memcacheq 服务安装与原理
- 思科将在网络中融入人工智能和机器学习
- 控制器框架Struts与策略模式那点事
- 封装运动框架多个属性
- JQuery绑定事件 时如何传递参数
- java字符串10_排名前10的Java字符串问题
- android 如何拖动控件的实现
- java gc log调优_Java 开启 gc 日志
- OS X下使用OpenGL做离屏渲染
- Thunder团队第三周 - Scrum会议6
- 鸿蒙系统和你,鸿蒙系统面世,但与您所想的不一样
- PPC WM5 输入法屏蔽插件
- docker打包镜像(实用版)
- 记一次使用verdaccio 搭建本地私有npm服务器
- 下次面试再一上来就问我线程有哪些状态,我上去就是给他一 jio
- 3D真人手办,做一个迷你版的自己
- 【人工智能】人工智能的概况(绪论)
- rj45 千兆接口定义_rj45接口定义,大神教你秒懂rj45的接线方法【详细方法】
- 使用XXLjob中间件进行定时任务的管理
- 查看百度CUID方法