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 相关文章推荐
filemanage功能中用到的common.js
Apr 08 Javascript
一个用javascript写的select支持上下键、首字母筛选以及回车取值的功能
Sep 09 Javascript
用js来定义浏览器中一个左右浮动元素相对于页面主体宽度的位置的函数
Jan 21 Javascript
JavaScript 反科里化 this [译]
Sep 20 Javascript
Jquery Ajax解析XML数据(同步及异步调用)简单实例
Feb 12 Javascript
jQuery+Ajax实现无刷新分页
Oct 30 Javascript
Vue结合原生js实现自定义组件自动生成示例
Jan 21 Javascript
javascript 正则表达式去空行方法
Jan 24 Javascript
js脚本编写简单刷票投票系统
Jun 27 Javascript
VueJS 集成 Medium Editor的示例代码 (自定义编辑器按钮)
Aug 24 Javascript
bootstrap-table组合表头的实现方法
Sep 07 Javascript
Node.js 实现远程桌面监控的方法步骤
Jul 02 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
国王的咖啡这么大来头,名字的由来是什么
2021/03/03 咖啡文化
Zend Guard一些常见问题解答
2008/09/11 PHP
基于php伪静态的实现详细介绍
2013/04/28 PHP
php+mongodb判断坐标是否在指定多边形区域内的实例
2016/10/28 PHP
php 自定义错误日志实例详解
2016/11/12 PHP
ThinkPHP 3.2.3实现加减乘除图片验证码
2018/12/05 PHP
laradock环境docker-compose操作详解
2019/07/29 PHP
PHP实现chrome表单请求数据转换为接口使用的json数据
2021/03/04 PHP
用JS判别浏览器种类以及IE版本的几种方法小结
2011/08/02 Javascript
jquery easyui滚动条部分设置介绍
2013/09/12 Javascript
js动态添加onclick事件可传参数与不传参数
2014/07/29 Javascript
将HTML格式的String转化为HTMLElement的实现方法
2014/08/07 Javascript
js实现选中页面文字将其分享到新浪微博
2015/11/05 Javascript
VUEJS实战之构建基础并渲染出列表(1)
2016/06/13 Javascript
AngularJS中transclude用法详解
2016/11/03 Javascript
node.js操作mongodb简单示例分享
2017/05/25 Javascript
基于JavaScript实现飘落星星特效
2017/08/10 Javascript
使用InstantClick.js让页面提前加载200ms
2017/09/12 Javascript
微信小程序实现倒计时调用相机自动拍照功能
2018/06/10 Javascript
webpack file-loader和url-loader的区别
2019/01/15 Javascript
手挽手带你学React之React-router4.x的使用
2019/02/14 Javascript
[50:04]DOTA2上海特级锦标赛D组小组赛#2 Liquid VS VP第二局
2016/02/28 DOTA
python with statement 进行文件操作指南
2014/08/22 Python
深入理解Javascript中的this关键字
2015/03/27 Python
用Python中的wxPython实现最基本的浏览器功能
2015/04/14 Python
python使用 HTMLTestRunner.py生成测试报告
2017/10/20 Python
python实现协同过滤推荐算法完整代码示例
2017/12/15 Python
Python判断中文字符串是否相等的实例
2018/07/06 Python
python自定义函数实现一个数的三次方计算方法
2019/01/20 Python
Python如何爬取微信公众号文章和评论(基于 Fiddler 抓包分析)
2019/06/28 Python
python利用re,bs4,requests模块获取股票数据
2019/07/29 Python
Python爬虫 bilibili视频弹幕提取过程详解
2019/07/31 Python
迟到检讨书400字
2014/01/13 职场文书
考试作弊检讨
2015/01/27 职场文书
环境建议书
2015/02/04 职场文书
党员干部学法用法心得体会
2016/01/21 职场文书