常用技巧之JS判断重复

如何判断数组中是否有相同的元素呢?

先来讲下思路:

现实中,要判断某个东西是否相同,那就意味着这东西至少是有2个或更多,

否则单个东西没法比较。

数组也是一样,要判断一个数组中是否有相同的元素,

最简单的方法,

就是把数组复制一份,然后二个数组比较,这种虽然从效率上差些,

但胜在容易理解。

先上代码:

function isCheck(arr){
 var b = arr.join(',');
 for(var i=0;i<b.length;i++){
 if(b.replace(arr[i],"").indexOf(arr[i]>-1)){
 return true;
 }
 }
 return false;
}
var arrs = [1,3,4,5,2];
console.log( isCheck(arrs) )

看不明白不要紧,我大概讲下,具体怎么比较的。。

就是把var arr=[1,2,3]再复制一个var b=[1,2,3];

然后for循环,

从0开始,当i=0的时候,

把arr数组的第0个值,replace替换为"",

然后用indexOf查找b数组的第[i]个值,

如果>-1,就是有重复,否则就是没有重复。

其实还是很简单的哈,大家多练习下,就明白啦。

今天这个例子,只能判断是否有重复,只能返回true或是false

相关链接:常用技巧之JS去除重复项

原文发布于微信公众号 - web前端教室(webfeel)

原文发表时间:2015-12-26

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏用户2442861的专栏

深入理解java异常处理机制

http://blog.csdn.net/hguisu/article/details/6155636

822
来自专栏微信公众号:Java团长

深入理解Java:String

按照官方的说法:Java 虚拟机具有一个堆,堆是运行时数据区域,所有类实例和数组的内存均从此处分配。

1051
来自专栏一英里广度一英寸深度的学习

线性排序算法(1)

由于在遍历过程中,当出现前一个元素小于当前元素,提前结束比对,比选择排序算法的比对次数少。

1193
来自专栏梧雨北辰的开发录

Swift学习:构造器(下)

本篇主要介绍Swift中构造器的一些特殊用法 一、可失败的构造器 顾名思义,这是用于我们构造过程可能失败情况的构造器。失败的原因可能是给构造器传入无效的参数值,...

2737
来自专栏Python

while补充,字符串和数字的内置方法

一、while循环的补充 while True: name=input('please input your name: ') password...

2597
来自专栏Java3y

泛型就这么简单

1614
来自专栏你不就像风一样

一文看透Java8新特性:lambda表达式和Stream API

借用引言中的示例,在调用new Thread的含参构造方法时,我们通过匿名内部类的方式实现了Runnable对象,但其实有用的代码只有System.out.pr...

1101
来自专栏Golang语言社区

深入分析golang多值返回以及闭包的实现

一、前言 golang有很多新颖的特性,不知道大家的使用的时候,有没想过,这些特性是如何实现的?当然你可能会说,不了解这些特性好像也不影响自己使用golang,...

4746
来自专栏专注数据中心高性能网络技术研发

[Effective Modern C++(11&14)]Chapter 3: Moving to Modern C++

2286
来自专栏老九学堂

干货 | Java 中不得不知的异常和处理详解

简介 程序运行时,发生的不被期望的事件,它阻止了程序按照程序员的预期正常执行,这就是异常。异常发生时,是任程序自生自灭,立刻退出终止,还是输出错误给用户?或者用...

3907

扫码关注云+社区

领取腾讯云代金券