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

 更新时间:2012年12月17日 15:53:38   作者:  
在JS中要判断一个值是否在数组中并没有函数直接使用,如PHP中就有in_array()这个函数,可以写一个类似in_array()函数功能的方法
在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常见问题总结

    javascript学习(二)javascript常见问题总结

    在js使用过程中,经常会碰到一些问题,本人利用闲暇时间整理了一些常见问题的解决方法,贴出来和大家分享,有需要的朋友可以参考下
    2013-01-01
  • JavaScript核心语法总结(推荐)

    JavaScript核心语法总结(推荐)

    下面小编就为大家带来一篇JavaScript核心语法总结(推荐)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-06-06
  • 详解js加减乘除精确计算

    详解js加减乘除精确计算

    这篇文章主要介绍了js加减乘除精确计算,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-03-03
  • JavaScript For Beginners(转载)

    JavaScript For Beginners(转载)

    JavaScript For Beginners(转载)...
    2007-01-01
  • JavaScript的==运算详解

    JavaScript的==运算详解

    这篇文章主要介绍了JavaScript的==运算,通过一张简单的图,让你彻底地搞明白,需要的朋友可以参考下
    2016-07-07
  • javascript Event对象详解及使用示例

    javascript Event对象详解及使用示例

    Event代表事件状态,如事件发生的元素,键盘状态,鼠标位置和鼠标按钮状态,event对象只在事件发生的过程中才有效,本文整理了一些,喜欢的朋友可以学习下
    2013-11-11
  • 深入理解JavaScript系列(41):设计模式之模板方法详解

    深入理解JavaScript系列(41):设计模式之模板方法详解

    这篇文章主要介绍了深入理解JavaScript系列(41):设计模式之模板方法详解,模板方法(TemplateMethod)定义了一个操作中的算法的骨架,而将一些步骤延迟到子类中,模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤,需要的朋友可以参考下
    2015-03-03
  • Javascrip基础之for循环和数组

    Javascrip基础之for循环和数组

    这篇文章主要为大家介绍了Javascrip之for循环和数组,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2021-12-12
  • javaScript复制功能调用实现方案

    javaScript复制功能调用实现方案

    说到使用js实现点击复制的功能,我下面想说的方法也是和网上的大同小异的。js实现是很简单,最难的是兼容问题,毕竟用IE以外的人还是有很多的
    2012-12-12
  • javascript编程起步(第六课)

    javascript编程起步(第六课)

    javascript编程起步(第六课)...
    2007-02-02

最新评论