javascript中判断一个值是否在数组中并没有直接使用


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

例1

/* 
* 
* 判断在数组中是否含有给定的一个变量值 
* 参数: 
* needle:需要查询的值 
* haystack:被查询的数组 
* 在haystack中查询needle是否存在,如果找到返回true,否则返回false。 
* 此函数只能对字符和数字有效 
* 
*/ 
function findnum(){ 
var a=[1,2];//假设a是数组,obj是要判断的数 
var obj=1; 
var b = false; 
for (var i = 0; i < a.length; i++) { 
if (a[i] == obj) { 
b = true;break; 
} 
} 
if (b) 
alert("数组中存在a[" + i + "]:" + a[i]); 
else 
alert("数组中不存在"+obj); 
}
 
例2
/** 
* 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 
JS判断一个数组中是否有重复值的 
var ary = new Array("111","22","33","111"); 
var s = ary.join(",")+","; 
for(var i=0;i<ary.length;i++) { 
if(s.replace(ary[i]+",","").indexOf(ary[i]+",")>-1) { 
alert("数组中有重复元素:" + ary[i]); 
break; 
} 
}
 
例5
function isRepeat(arr){ 
var hash = {}; 
for(var i in arr) { 
if(hash[arr[i]]) 
return true; 
hash[arr[i]] = true; 
} 
return false; 
}
Javascript 相关文章推荐
js 关于=+与+=日期函数使用说明(赋值运算符)
Nov 15 Javascript
JavaScript 高级篇之函数 (四)
Apr 07 Javascript
圣诞节Merry Christmas给博客添加浪漫的下雪效果基于jquery实现
Dec 27 Javascript
node.js中的emitter.emit方法使用说明
Dec 10 Javascript
JS操作JSON方法总结(推荐)
Jun 14 Javascript
AngularJS实用开发技巧(推荐)
Jul 13 Javascript
谈谈vue中mixin的一点理解
Dec 12 Javascript
用最少的JS代码写出贪吃蛇游戏
Jan 12 Javascript
angularJs-$http实现百度搜索时的动态下拉框示例
Feb 27 Javascript
手把手教你 CKEDITOR 4 扩展插件制作
Jun 18 Javascript
vue下使用nginx刷新页面404的问题解决
Aug 02 Javascript
vue-router之实现导航切换过渡动画效果
Oct 31 Javascript
firefox下jquery iframe刷新页面提示会导致重复之前动作
Dec 17 #Javascript
使用按钮控制以何种方式打开新窗口的属性介绍
Dec 17 #Javascript
如何让页面在打开时自动刷新一次让图片全部显示
Dec 17 #Javascript
js中escape对应的C#解码函数 UrlDecode
Dec 16 #Javascript
Ext JS 4官方文档之三 -- 类体系概述与实践
Dec 16 #Javascript
js弹出的对话窗口永远保持居中显示
Dec 15 #Javascript
JS函数实现动态添加CSS样式表文件
Dec 15 #Javascript
You might like
PHP获取网址的顶级域名函数代码
2012/09/24 PHP
PHP之APC缓存详细介绍 apc模块安装
2014/01/13 PHP
浅析php原型模式
2014/11/25 PHP
laravel框架实现为 Blade 模板引擎添加新文件扩展名操作示例
2020/01/25 PHP
Jquery优化效率 提升性能解决方案
2010/09/06 Javascript
javascript判断用户浏览器插件安装情况的代码
2011/01/01 Javascript
jQuery中:not选择器用法实例
2014/12/30 Javascript
使用jquery提交form表单并自定义action的实现代码
2016/05/25 Javascript
基于Vue.js实现数字拼图游戏
2016/08/02 Javascript
微信小程序中setInterval的使用方法
2017/09/29 Javascript
Vue 进入/离开动画效果
2017/12/26 Javascript
webpack分离css单独打包的方法
2018/06/12 Javascript
vuejs使用axios异步访问时用get和post的实例讲解
2018/08/09 Javascript
Vue组件通信的几种实现方法
2019/04/25 Javascript
vue element-ui table组件动态生成表头和数据并修改单元格格式 父子组件通信
2019/08/15 Javascript
深入理解基于vue-cli的webpack打包优化实践及探索
2019/10/14 Javascript
[45:50]完美世界DOTA2联赛PWL S3 CPG vs Forest 第二场 12.16
2020/12/17 DOTA
python标准日志模块logging的使用方法
2013/11/01 Python
利用Django内置的认证视图实现用户密码重置功能详解
2017/11/24 Python
对Python Class之间函数的调用关系详解
2019/01/23 Python
Python根据当前日期取去年同星期日期
2019/04/14 Python
修改 CentOS 6.x 上默认Python的方法
2019/09/06 Python
Python turtle画图库&amp;&amp;画姓名实例
2020/01/19 Python
Whittard官方海外旗舰店:英国百年茶叶品牌
2018/02/22 全球购物
linux面试题参考答案(4)
2014/09/21 面试题
学期自我鉴定范文
2013/10/01 职场文书
大学生创业计划书的范文
2014/01/07 职场文书
大学考试作弊检讨书
2014/01/30 职场文书
中学家长会邀请函
2014/02/03 职场文书
《逃家小兔》教学反思
2014/02/23 职场文书
2014年医学生毕业自我鉴定
2014/03/26 职场文书
投标担保书范文
2014/04/02 职场文书
精神文明单位申报材料
2014/05/02 职场文书
工人先锋号申报材料
2014/12/29 职场文书
实现一个简单得数据响应系统
2021/11/11 Javascript
SQL Server 中的事务介绍
2022/05/20 SQL Server