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 相关文章推荐
23个Javascript弹出窗口特效整理
Feb 25 Javascript
javascript变量作用域使用中常见错误总结
Mar 26 Javascript
js获取dom的高度和宽度(可见区域及部分等等)
Jun 13 Javascript
setTimeout自动触发一个js的方法
Jan 15 Javascript
JavaScript前补零操作实例
Mar 11 Javascript
js实现数组转换成json
Jun 26 Javascript
js获取鼠标位置实例详解
Dec 09 Javascript
浅谈js的异步执行
Oct 18 Javascript
JavaScript自定义浏览器滚动条兼容IE、 火狐和chrome
Jan 05 Javascript
详解如何使用vue-cli脚手架搭建Vue.js项目
May 19 Javascript
Vue2.0 实现移动端图片上传功能
May 30 Javascript
mpvue+vant app搭建微信小程序的方法步骤
Feb 11 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 字符串加密函数(在指定时间内加密还原字符串,超时无法还原)
2010/04/28 PHP
PHP 事件机制(2)
2011/03/23 PHP
PHP中的Memcache详解
2014/04/05 PHP
Zend Framework教程之Zend_Db_Table用法详解
2016/03/21 PHP
PHP实现基于图的深度优先遍历输出1,2,3...n的全排列功能
2017/11/10 PHP
PHP实现微信红包金额拆分试玩的算法示例
2018/04/07 PHP
js字符串的各种格式的转换 ToString,Format
2011/08/08 Javascript
网页加载时页面显示进度条加载完成之后显示网页内容
2012/12/23 Javascript
js控制文本框只输入数字和小数点的方法
2015/03/10 Javascript
JS实现模拟风力的雪花飘落效果
2015/05/13 Javascript
Angular 4.x 路由快速入门学习
2017/05/03 Javascript
jQuery实现切换隐藏与显示同时切换图标功能
2017/10/29 jQuery
原生JS+CSS实现炫酷重力模拟弹跳系统的登录页面
2017/11/01 Javascript
JS实现的缓冲运动效果示例
2018/04/30 Javascript
JS 中可以提升幸福度的小技巧(可以识别更多另类写法)
2018/07/28 Javascript
深入理解Vue 的钩子函数
2018/09/05 Javascript
vue中的ref和$refs的使用
2018/11/22 Javascript
js常用方法、检查是否有特殊字符串、倒序截取字符串操作完整示例
2020/01/26 Javascript
[02:49]2014DOTA2电竞也是体育项目! 势要把荣誉带回中国!
2014/07/20 DOTA
python使用nntp读取新闻组内容的方法
2015/05/08 Python
用Python写一个无界面的2048小游戏
2016/05/24 Python
pandas实现DataFrame显示最大行列,不省略显示实例
2019/12/26 Python
python使用Thread的setDaemon启动后台线程教程
2020/04/25 Python
在Python3.74+PyCharm2020.1 x64中安装使用Kivy的详细教程
2020/08/07 Python
纯CSS实现颜色渐变效果(包含环形渐变、线性渐变、彩虹效果等)
2014/05/07 HTML / CSS
美国专营婴幼儿用品的购物网站:buybuy BABY
2017/01/01 全球购物
英国领先的餐饮折扣俱乐部:Gourmet Society
2020/07/26 全球购物
资产评估专业学生的自我鉴定
2013/11/14 职场文书
《那片绿绿的爬山虎》教学反思
2014/02/27 职场文书
家长会主持词
2014/03/26 职场文书
乡镇党建工作汇报材料
2014/08/14 职场文书
2014年法院工作总结
2014/11/24 职场文书
反邪教警示教育活动总结
2015/05/09 职场文书
致短跑运动员加油稿
2015/07/21 职场文书
六五普法先进个人主要事迹材料
2015/11/03 职场文书
Python如何识别银行卡卡号?
2021/06/10 Python