JavaScript实现的in_array函数_javascript技巧

在JS中要判断一个值是否在数组中并没有函数直接使用,如PHP中就有in_array()这个函数。但我们可以写一个类似in_array()函数来判断是一个值否在函数中。

/**
 * JS判断一个值是否存在数组中
 */

// 定义一个判断函数
var in_array = function(arr){
  // 判断参数是不是数组
  var isArr = arr && console.log(
      typeof arr==='object' ? arr.constructor===Array ? arr.length ? arr.length===1 ? arr[0]:arr.join(','):'an empty array': arr.constructor: typeof arr
    );

  // 不是数组则抛出异常
  if(!isArr){
    throw "arguments is not Array";
  }

  // 遍历是否在数组中
  for(var i=0,k=arr.length;i<k;i++){
    if(this==arr[i]){
      return true;
    }
  }

  // 如果不在数组中就会返回false
  return false;
}

// 给字符串添加原型
String.prototype.in_array = in_array;
// 给数字类型添加原型
Number.prototype.in_array = in_array;

// 声明一个数组
var arr = Array('blue','red','110','120');

// 字符串测试
var str = 'red';
var isInArray = str.in_array(arr);
alert(isInArray); // true

// 数字测试
var num = 119;
var isInArray = num.in_array(arr);
alert(isInArray); // false

如果传入的不是数组则会抛出异常

 

/**
 * JS判断一个值是否存在数组中
 */

// 定义一个判断函数
var in_array = function(arr){
  // 判断参数是不是数组
  var isArr = arr && console.log(
      typeof arr==='object' ? arr.constructor===Array ? arr.length ? arr.length===1 ? arr[0]:arr.join(','):'an empty array': arr.constructor: typeof arr
    );

  // 不是数组则抛出异常
  if(!isArr){
    throw "arguments is not Array";
  }

  // 遍历是否在数组中
  for(var i=0,k=arr.length;i<k;i++){
    if(this==arr[i]){
      return true;
    }
  }

  // 如果不在数组中就会返回false
  return false;
}

// 给字符串添加原型
String.prototype.in_array = in_array;
// 给数字类型添加原型
Number.prototype.in_array = in_array;

// 声明一个数组
var arr = null;

// 字符串测试
var str = 'red';
var isInArray = str.in_array(arr);
alert(isInArray); // uncaught exception: arguments is not Array

直接报错:

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索javascript
in_array
javascript array、javascript array map、javascript in array、javascript new array、javascript array pop,以便于您获取更多的相关知识。

时间: 2024-12-06 07:10:39

JavaScript实现的in_array函数_javascript技巧的相关文章

深入认识javascript中的eval函数_javascript技巧

1)介绍javascript中的eval函数的用法 (2)如何在函数内执行全局代码 ►先来说eval的用法,内容比较简单,熟悉的可以跳过. eval函数接收一个参数s,如果s不是字符串,则直接返回s.否则执行s语句.如果s语句执行结果是一个值,则返回此值,否则返回undefined. 需要特别注意的是对象声明语法"{}"并不能返回一个值,需要用括号括起来才会返回值,简单示例如下: 复制代码 代码如下: var code1='"a" + 2'; //表达式 var c

JavaScript中的Function函数_javascript技巧

首先给大家介绍JavaScript中function定义函数的几种方法: 1.最基本的作为一个本本分分的函数声明使用. 复制代码 代码如下: function func(){} 或 复制代码 代码如下: var func=function(){}; 2.作为一个类构造器使用: function class(){} class.prototype={}; var item=new class(); 3.作为闭包使用: (function(){ //独立作用域 })(); 4.可以作为选择器使用:

JavaScript时间转换处理函数_javascript技巧

JavaScript时间转换处理函数 /** * 将格式为yyyy-MM-dd hh:mm:ss.S的字符串转为Date * @param dateString 时间字符串 */ function convertToDate(dateString){ return new Date(dateString.replace(/\-/g,"/")); } /** * 比较时间 * @param date1 * @param date2 */ function compareDate(date

深入浅析JavaScript面向对象和原型函数_javascript技巧

对象,是javascript中非常重要的一个梗,是否能透彻的理解它直接关系到你对整个javascript体系的基础理解,说白了,javascript就是一群对象在搅..(哔!). 下面给大家介绍下常用的几种对象创建模式 使用new关键字创建 最基础的对象创建方式,无非就是和其他多数语言一样说的一样:没对象,你new一个呀! var gf = new Object(); gf.name = "tangwei"; gf.bar = "c++"; gf.sayWhat =

浅谈javascript语法和定时函数_javascript技巧

一.JavaScript基本语法. (一)数据类型与变量类型. 整数,小数,布局,字符串,日期时间,数组 强制转换: parseInt() parseFloat() isNaN() (二)数组 var 数组名 = new Array([长度]); //"假冒"数组 a.length-长度 a[下标] = 值. a[下标] (三)函数 复制代码 代码如下: function 函数名(形参) { } function ShowStr(a) { } 二.DOM操作 DOM - Documen

javascript 定义初始化数组函数_javascript技巧

方法一.js数组的定义与初始化 定义一维数组 方法1: var _TheArray = new Array);//定义 _TheArray[0]="1"; _TheArray[1]="2"; _TheArray[2]="3"; //初始化 方法2: var _TheArray = new Array("1","2","3");//直接定义并初始化 定义二维数组 方法1 var _TheA

Javascript实现的分页函数_javascript技巧

/**  * 分页类构造  * 参数 nTotalList: 总条数  * 参数 nPageSize: 每页显示条数  * 参数 nPageNum: 当前页码  * 参数 sPageUrl: 分页链接的URL,页码以[pn]代替,输出时将被替换为实际页码  * 参数 nPageListSize: 页码列表(下拉框)中显示的最多页码条数.该参数可省略,默认100  */ function Pagination(nTotalList, nPageSize, nPageNum, sPageUrl, n

javascript 有用的脚本函数_javascript技巧

function styleHeaderSiblings(){ if(!document.getElementByTagName)return false; var headers = document.getElementByTagName("h1"); for(var i = 0;i<headers.length;i++){ addClass(elem,"intro"); } } function styleElementSiblings(tag,thec

JavaScript 关键字屏蔽实现函数_javascript技巧

复制代码 代码如下: <script language="javascript1.2"><!-- function test() { if((a.b.value.indexOf ("***") == 0)||(a.b.value.indexOf ("****") == 0)){ alert(":)"); a.b.focus(); return false;} } // --></script>