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 相关文章推荐
jquery 操作DOM的基本用法分享
Apr 05 Javascript
XMLHttpRequest处理xml格式的返回数据(示例代码)
Nov 21 Javascript
javascript的解析执行顺序在各个浏览器中的不同
Mar 17 Javascript
Javascript中call与apply的学习笔记
Sep 22 Javascript
Node.js中JavaScript操作MySQL的常用方法整理
Mar 01 Javascript
基于jquery实现无限级树形菜单
Mar 22 Javascript
将angular.js项目整合到.net mvc中的方法详解
Jun 29 Javascript
详解VueJS应用中管理用户权限
Feb 02 Javascript
vue 使用html2canvas将DOM转化为图片的方法
Sep 11 Javascript
浅谈Node新版本13.2.0正式支持ES Modules特性
Nov 25 Javascript
js判断一个对象是数组(函数)的方法实例
Dec 19 Javascript
JS实现小米轮播图
Sep 21 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
php中可能用来加密字符串的函数[base64_encode、urlencode、sha1]
2012/01/16 PHP
php定时执行任务设置详解
2015/02/06 PHP
用PHP生成excel文件到指定目录
2015/06/22 PHP
laravel实现按时间日期进行分组统计方法示例
2019/03/23 PHP
用js实现预览待上传的本地图片
2007/03/15 Javascript
JavaScript显示当前文档最后修改日期的方法
2015/03/19 Javascript
使用Node.js为其他程序编写扩展的基本方法
2015/06/23 Javascript
Bootstrap每天必学之下拉菜单
2015/11/25 Javascript
chrome浏览器如何断点调试异步加载的JS
2016/09/05 Javascript
JavaScript 数组的深度复制解析
2016/11/02 Javascript
Vue-cli proxyTable 解决开发环境的跨域问题详解
2017/05/18 Javascript
Javascript实现时间倒计时效果
2017/07/15 Javascript
跨域请求两种方法 jsonp和cors的实现
2018/11/11 Javascript
vue使用keep-alive保持滚动条位置的实现方法
2019/04/09 Javascript
浅谈Python程序与C++程序的联合使用
2015/04/07 Python
python类继承用法实例分析
2015/05/27 Python
python+selenium开发环境搭建图文教程
2017/08/11 Python
Python列表删除的三种方法代码分享
2017/10/31 Python
pandas数值计算与排序方法
2018/04/12 Python
在Python中获取两数相除的商和余数方法
2018/11/10 Python
pandas取出重复数据的方法
2019/07/04 Python
kali中python版本的切换方法
2019/07/11 Python
Python编程中类与类的关系详解
2019/08/08 Python
Python实现子类调用父类的初始化实例
2020/03/12 Python
python字符串的index和find的区别详解
2020/06/20 Python
ANINE BING官方网站:奢华的衣橱基本款和时尚永恒的单品
2019/11/26 全球购物
护理专业自荐信
2013/12/03 职场文书
优秀的茶餐厅创业计划书
2014/01/03 职场文书
最经典的大学生职业生涯规划范文
2014/03/05 职场文书
《地震中的父与子》教学反思
2014/04/10 职场文书
承诺书范文
2014/06/03 职场文书
党员目标管理责任书
2014/07/25 职场文书
落实八项规定专题民主生活会对照检查材料
2014/09/15 职场文书
考试作弊万能检讨书
2014/10/19 职场文书
司法局群众路线教育实践活动开展情况总结
2014/10/25 职场文书
2015小学五年级班主任工作总结
2015/05/21 职场文书