JavaScript中扩展Array contains方法实例


Posted in Javascript onAugust 23, 2020

首先三水点靠木小编先为大家分享一个比较好用的代码

Array.prototype.contains = function (a)
{
  if ("string" == typeof a || "number" == typeof a) {
    for (var b in this) {
      if (a == this [b]) {
        return!0;
      };
    }
  }
  return!1
};

先判断传入的参考是字符与数字才可以判断,这样就比较精准。

下面是一些推荐资料可以看看

javascript的Array没有contains方法,有时候这会不方便,contains方法实现很简单:

function contains(a, obj) {
 var i = a.length;
 while (i--) {
  if (a[i] === obj) {
   return true;
  }
 }
 return false;
}

当然我们也可以扩展Array类,如下js

Array.prototype.contains = function(obj) {
 var i = this.length;
 while (i--) {
  if (this[i] === obj) {
   return true;
  }
 }
 return false;
}

这样就可以方便的使用contains方法了:

alert([1, 2, 3].contains(2)); // => true
alert([1, 2, 3].contains('2')); // => false

下面是三水点靠木小编整理的几种方法

一个小误区 JS中的contains

在Java语言中,contains可以用于判断str1是否包含str2

原生JS中是有contains方法的

结构与测试代码如下

<div id="div1">
<div id="div2">
3water.com
</div>
</div>
<script type="text/javascript">
var div1= document.getElementById("div1");
var div2= document.getElementById("div2");
console.log(div1.contains(div2));

var str1="3water.com";
var str2="3water";
console.log(str1.contains(str2));
</script>

JavaScript中扩展Array contains方法实例

但它并不是字符串方法,,仅用于判断DOM元素的包含关系,参数是Element类型

JavaScript中扩展Array contains方法实例

若要在JS中判断俩字符串的包含关系,用indexOf()

JavaScript中扩展Array contains方法实例

但是我们可以通过扩展的方法来实现

<div id="div1">
<div id="div2">
3water.com
</div>
</div>
<script type="text/javascript">
var div1= document.getElementById("div1");
var div2= document.getElementById("div2");
console.log("div1.contains(div2)="+div1.contains(div2));

//字符扩展contains就不会报错了
String.prototype.contains = function(a) {
 return - 1 < this.indexOf(a)
};

var str1="3water.com";
var str2="3water";
console.log("str1.contains(str2)="+str1.contains(str2));

//数组扩展contains适用于数组判断
Array.prototype.contains = function(a) {
 if ("string" == typeof a || "number" == typeof a) for (var b in this) if (a == this[b]) return ! 0;
 return ! 1
};

var arr1=["3water.com","jbzj.com","3water.com"];
var str3="3water.com";
console.log("arr1.contains(str3)="+arr1.contains(str3));
</script>

下面是运行结果

JavaScript中扩展Array contains方法实例

当然也有通过正则实现的JS扩展Array,添加contains方法

Array.prototype.contains = function(item){
 return RegExp("\\b"+item+"\\b").test(this);
};

直接返回true/false

JS判断Array数组中是否包含指定元素

1.调用方式:

var arr=["a","b"];
alert(arr.in_array("a"))

2.JS判断数组是否包含指定元素方法定义:

Array.prototype.contains = function(obj) {
  var i = this.length;
  while (i--) {
    if (this[i] === obj) {
      return true;
    }
  }
  return false;
}
或
Array.prototype.contains = function(element) {
  for (var i = 0; i < this.length; i++) {
    if (this[i] == element) {
      return true;
    }
  }
  return false;
}
或
Array.prototype.in_array = function(e) {
  for(i=0; i<this.length && this[i]!=e; i++);
  return !(i==this.length);
}


还有一个大牛是这样写的:
Array.prototype.S = String.fromCharCode(2);
Array.prototype.in_array = function(e) {
  var r = new RegExp(this.S+e+this.S);
  return (r.test(this.S+this.join(this.S)+this.S));
}

站外扩展:

Jquery实现方式:http://api.jquery.com/jQuery.inArray/

具体选择看个人需求,三水点靠木小编建议能不用正则则不用,效率问题,代码是简洁就怕一些老的浏览器不支持。

Javascript 相关文章推荐
JavaScript几种形式的树结构菜单
May 10 Javascript
JS实现的自定义网页拖动类
Nov 06 Javascript
jQuery实现漂亮实用的商品图片tips提示框效果(无图片箭头+阴影)
Apr 16 Javascript
详解Angular2中的编程对象Observable
Sep 17 Javascript
SVG描边动画
Feb 23 Javascript
JS实现针对给定时间的倒计时功能示例
Apr 11 Javascript
Express系列之multer上传的使用
Oct 27 Javascript
详解JavaScript 为什么要有 Symbol 类型?
Apr 03 Javascript
vue接入腾讯防水墙代码
May 07 Javascript
vue移动端使用canvas签名的实现
Jan 15 Javascript
小程序跳转H5页面的方法步骤
Mar 06 Javascript
利用js实现简单开关灯代码
Nov 23 Javascript
JavaScript中消除闭包的一般方法介绍
Mar 16 #Javascript
jQuery实现的支持IE的html滑动条
Mar 16 #Javascript
JavaScript计算两个日期时间段内日期的方法
Mar 16 #Javascript
nw.js实现类似微信的聊天软件
Mar 16 #Javascript
JavaScript控制table某列不显示的方法
Mar 16 #Javascript
详解addEventListener的三个参数之useCapture
Mar 16 #Javascript
解决Jquery向页面append新元素之后事件的绑定问题
Mar 16 #Javascript
You might like
在Windows XP下安装Apache+MySQL+PHP环境
2015/02/22 PHP
php面向对象值单例模式
2016/05/03 PHP
PHP编程获取图片的主色调的方法【基于Imagick扩展】
2017/08/02 PHP
jquery 全局AJAX事件使用代码
2010/11/05 Javascript
使用JavaScript实现Java的List功能(实例讲解)
2013/11/07 Javascript
jQuery弹出层插件Lightbox_me使用指南
2015/04/21 Javascript
javascript框架设计之类工厂
2015/06/23 Javascript
用JavaScript实现PHP的urlencode与urldecode函数
2015/08/13 Javascript
js钢琴按钮波浪式图片排列效果代码分享
2015/08/26 Javascript
JavaScript中数组slice和splice的对比小结
2016/09/22 Javascript
vue iview实现动态路由和权限验证功能
2018/04/17 Javascript
使用vue实现多规格选择实例(SKU)
2019/08/23 Javascript
python中__call__内置函数用法实例
2015/06/04 Python
Pycharm远程调试openstack的方法
2017/11/21 Python
python求最大值最小值方法总结
2019/06/25 Python
在django中使用apscheduler 执行计划任务的实现方法
2020/02/11 Python
python GUI库图形界面开发之PyQt5访问系统剪切板QClipboard类详细使用方法与实例
2020/02/27 Python
Django设置Postgresql的操作
2020/05/14 Python
详解Django关于StreamingHttpResponse与FileResponse文件下载的最优方法
2021/01/07 Python
小学毕业感言150字
2014/02/05 职场文书
《哪吒闹海》教学反思
2014/02/28 职场文书
文明班集体申报材料
2014/05/23 职场文书
投标授权委托书范文
2014/08/02 职场文书
党性锻炼的心得体会
2014/09/03 职场文书
"9.18"国耻日演讲稿范文
2014/09/14 职场文书
机电专业毕业生自我鉴定2014
2014/10/04 职场文书
流动人口婚育证明
2014/10/19 职场文书
2014年销售工作总结
2014/12/01 职场文书
2015安全保卫工作总结
2015/04/25 职场文书
2019消防宣传标语!
2019/07/10 职场文书
创业计划书之寿司
2019/07/19 职场文书
PyTorch device与cuda.device用法
2022/04/03 Python
Go归并排序算法的实现方法
2022/04/06 Golang
idea下配置tomcat避坑详解
2022/04/12 Servers
Java实现HTML转为Word的示例代码
2022/06/28 Java/Android
数据设计之权限的实现
2022/08/05 MySQL