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

本文介绍了一个用于快速判断元素是否存在于JS数组中的函数,适用于字符串和数字类型的元素,并且提供了对非数组参数的异常处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/**
  * 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
http://www.qttc.net/201208191.html

在JavaScript中,判断一个是否存在于数组中可以使用多种方法。以下是几种常用的方法: 1. **`indexOf` 方法**: `indexOf` 方法返回数组中某个指定元素的第一个索引,如果不存在则返回 -1。 ```javascript const array = [1, 2, 3, 4, 5]; const value = 3; if (array.indexOf(value) !== -1) { console.log('存在于数组中'); } else { console.log('不存在于数组中'); } ``` 2. **`includes` 方法**: `includes` 方法用于判断一个数组是否包含一个指定的,如果是返回 `true`,否则返回 `false`。 ```javascript const array = [1, 2, 3, 4, 5]; const value = 3; if (array.includes(value)) { console.log('存在于数组中'); } else { console.log('不存在于数组中'); } ``` 3. **`some` 方法**: `some` 方法测试数组中是不是至少有1个元素通过了被提供的函数测试。它返回一个 Boolean 类型的。 ```javascript const array = [1, 2, 3, 4, 5]; const value = 3; const exists = array.some(element => element === value); if (exists) { console.log('存在于数组中'); } else { console.log('不存在于数组中'); } ``` 4. **`filter` 方法**: `filter` 方法创建一个数组,其包含通过所提供函数实现的测试的所有元素。 ```javascript const array = [1, 2, 3, 4, 5]; const value = 3; const filteredArray = array.filter(element => element === value); if (filteredArray.length > 0) { console.log('存在于数组中'); } else { console.log('不存在于数组中'); } ``` 这些方法各有优缺点,`includes` 方法语法简洁,推荐在现代浏览器中使用。`indexOf` 方法兼容性更好,适合在需要兼容旧版本浏览器时使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值