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拖拽排序效果实现代码
Sep 20 Javascript
Javascript生成json的函数代码(可以用php的json_decode解码)
Jun 11 Javascript
javascript学习笔记(五) Array 数组类型介绍
Jun 19 Javascript
Javascript 中 null、NaN和undefined的区别总结
Apr 10 Javascript
Javascript基础教程之JavaScript语法
Jan 18 Javascript
jquery实现美观的导航菜单鼠标提示特效代码
Sep 06 Javascript
简单实现js页面切换功能
Jan 10 Javascript
jQuery窗口拖动功能的实现代码
Feb 04 Javascript
Javascript仿京东放大镜的效果
Mar 01 Javascript
为什么我们要做三份 Webpack 配置文件
Sep 18 Javascript
详解用Node.js实现Restful风格webservice
Sep 29 Javascript
Electron整合React使用搭建开发环境的步骤详解
Jun 07 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
PHP4之COOKIE支持详解
2006/10/09 PHP
php cookie 作用范围?不要在当前页面使用你的cookie
2009/03/24 PHP
php下将多个数组合并成一个数组的方法与实例代码
2011/02/03 PHP
PHP file_exists问题杂谈
2012/05/07 PHP
Zend Framework教程之Zend_Db_Table表关联实例详解
2016/03/23 PHP
PHP 类与构造函数解析
2017/02/06 PHP
PHP基于DOM创建xml文档的方法示例
2017/02/08 PHP
根据判断浏览器类型屏幕分辨率自动调用不同CSS的代码
2007/02/22 Javascript
常见浏览器多长时间会提示“脚本运行时间过长”总结
2014/04/29 Javascript
nodejs分页类代码分享
2014/06/17 NodeJs
js的flv视频播放器插件使用方法
2015/06/23 Javascript
IE9+已经不对document.createElement向下兼容的解决方法
2015/09/14 Javascript
node.js实现爬虫教程
2020/08/25 Javascript
关于js二维数组和多维数组的定义声明(详解)
2016/10/02 Javascript
浅谈JavaScript异步编程
2017/01/20 Javascript
JavaScript运动框架 链式运动到完美运动(五)
2017/05/18 Javascript
详解vue-cli 脚手架项目-package.json
2017/07/04 Javascript
BootstrapTable加载按钮功能实例代码详解
2017/09/22 Javascript
从零开始搭建一个react项目开发
2018/02/09 Javascript
详解vue-router的导航钩子(导航守卫)
2020/11/02 Javascript
Python的string模块中的Template类字符串模板用法
2016/06/27 Python
详解pandas安装若干异常及解决方案总结
2019/01/10 Python
python3+PyQt5 使用三种不同的简便项窗口部件显示数据的方法
2019/06/17 Python
Django CSRF认证的几种解决方案
2020/03/03 Python
详解Python yaml模块
2020/09/23 Python
Django websocket原理及功能实现代码
2020/11/14 Python
使用html2canvas将页面转成图并使用用canvas2image下载
2019/04/04 HTML / CSS
eBay澳大利亚站:eBay.com.au
2018/02/02 全球购物
施华洛世奇加拿大官网:SWAROVSKI加拿大
2018/06/03 全球购物
纽约州一群才华横溢的金匠制作而成:Hearth Jewelry
2019/03/22 全球购物
领导班子个人查摆问题对照检查材料
2014/10/02 职场文书
简单的辞职信怎么写
2015/02/28 职场文书
企业党支部工作总结2015
2015/05/21 职场文书
2015年幼儿园学期工作总结
2015/05/22 职场文书
python 实现定时任务的四种方式
2021/04/01 Python
Oracle以逗号分隔的字符串拆分为多行数据实例详解
2021/07/16 Oracle