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 相关文章推荐
javascript 用原型继承来实现对象系统
Mar 22 Javascript
基于Jquery的动态创建DOM元素的代码
Dec 28 Javascript
两个listbox实现选项的添加删除和搜索
Mar 01 Javascript
用正则表达式替换图片地址img标签
Nov 22 Javascript
JS+DIV实现鼠标划过切换层效果的方法
May 25 Javascript
js贪吃蛇游戏实现思路和源码
Apr 14 Javascript
javascript、php关键字搜索函数的使用方法
May 29 Javascript
解决angularjs中同步执行http请求的方法
Aug 13 Javascript
JS中判断字符串存在和非空的方法
Sep 12 Javascript
js实现跳一跳小游戏
Jul 31 Javascript
js实现表格单列按字母排序
Aug 12 Javascript
uniapp 微信小程序 自定义tabBar 导航
Apr 22 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/14 PHP
laravel5.2实现区分前后台用户登录的方法
2017/01/11 PHP
Apply an AutoFormat to an Excel Spreadsheet
2007/06/12 Javascript
JavaScript CSS菜单功能 改进版
2008/12/20 Javascript
js escape,unescape解决中文乱码问题的方法
2010/05/26 Javascript
Extjs中使用extend(js继承) 的代码
2012/03/15 Javascript
jQuery制作效果超棒的手风琴折叠菜单
2015/04/03 Javascript
jQuery Validate表单验证入门学习
2015/12/18 Javascript
js实现滚动条滚动到某个位置便自动定位某个tr
2021/01/20 Javascript
每个程序员都需要学习 JavaScript 的7个理由小结
2016/09/03 Javascript
JS正则匹配URL网址的方法(可匹配www,http开头的一切网址)
2017/01/06 Javascript
写给vue新手们的vue渲染页面教程
2017/09/01 Javascript
vuejs 切换导航条高亮(路由菜单高亮)的方法示例
2018/05/29 Javascript
Vue.js中 v-model 指令的修饰符详解
2018/12/03 Javascript
JS/HTML5游戏常用算法之碰撞检测 包围盒检测算法详解【凹多边形的分离轴检测算法】
2018/12/13 Javascript
jQuery.parseJSON()函数详解
2019/02/28 jQuery
vue踩坑记录之数组定义和赋值问题
2019/03/20 Javascript
ES6知识点整理之数组解构和字符串解构的应用示例
2019/04/17 Javascript
详解Webpack如何引入CDN链接来优化编译后的体积
2019/06/21 Javascript
vue全屏事件开发详解
2020/06/17 Javascript
微信小程序自定义弹出层效果
2020/05/26 Javascript
vue实现div可拖动位置也可改变盒子大小的原理
2020/09/16 Javascript
解决vant中 tab栏遇到的坑 van-tabs
2020/11/04 Javascript
python中函数默认值使用注意点详解
2016/06/01 Python
python如何通过twisted实现数据库异步插入
2018/03/20 Python
Flask框架信号用法实例分析
2018/07/24 Python
Python实现KNN(K-近邻)算法的示例代码
2019/03/05 Python
使用Python和Prometheus跟踪天气的使用方法
2019/05/06 Python
Python异常处理机制结构实例解析
2020/07/23 Python
Python爬虫代理池搭建的方法步骤
2020/09/28 Python
详解Sticky Footer 绝对底部的两种套路
2017/11/03 HTML / CSS
学习商务礼仪心得体会
2016/01/22 职场文书
python中对列表的删除和添加方法详解
2022/02/24 Python
vue项目配置sass及引入外部scss文件
2022/04/14 Vue.js
Oracle数据库事务的开启与结束详解
2022/06/25 Oracle
Tomcat安装使用及部署Web项目的3种方法汇总
2022/08/14 Servers