足球盘口软件
当前位置: 足球盘口软件 > 前端 >
js判断一个值是否存在于一个js数组中,js中判断一个数组中是否有重复值的方法

js中推断五个数组中是还是不是有重复值的主意,重借使用到了hash那一个措施。使用模式很轻松,和健康的函数使用是平等的。

js 中决断有个别成分是或不是留存于某些 js 数组中,也正是 php 语言中的 in_array 函数。

web开垦中在调整js的时候时临时索要打印数组,打字与印刷对象。由于js自癸未有像php那样能够一向打字与印刷数组和对象的函数,所以作者通过商量和睦总括了两种办法来解决了这一个标题,上面就来探视哪些在js中打印数组和目的呢。

语法
array_filter(array,function)
参数     描述
array     必须。规定输入的数组。
function     自定义函数的名称,为空时过滤掉全数值为flase的成分

function checkArrayRepeat(array){
 var hash={};
 for(var i in array){
  if(hash[array[i]]){
   return true;
  }
  hash[array[i]]=true;
 }
 return false;
}
Array.prototype.S=String.fromCharCode(2);
Array.prototype.in_array=function(e){
    var r=new RegExp(this.S+e+this.S);
    return (r.test(this.S+this.join(this.S)+this.S));
};
//打印数组
function print_array(arr){
 for(var key in arr){
  if(typeof(arr[key])=='array'||typeof(arr[key])=='object'){//递归调用  
   print_array(arr[key]);
  }else{
   document.write(key + ' = ' + arr[key] + '<br>');
  }
 }
}

 代码如下

示例:

用法如下:

示例:

<?php
 
function odd($var) {
    return($var & 1);
}
 
function even($var) {
    return(!($var & 1));
}
 
$array1 = array("a"=>1, "b"=>2, "c"=>3, "d"=>4, "e"=>5);
$array2 = array(6, 7, 8, 9, 10, 11, 12);
 
echo "Odd :n";
print_r(array_filter($array1, "odd"));
echo "Even:n";
print_r(array_filter($array2, "even"));
/*
 
Odd :
Array
(
   
[a] => 1
   
[c] => 3
   
[e] => 5
)
Even:
Array
(
   
[0] => 6
   
[2] => 8
   
[4] => 10
   
[6] => 12
)
*/

$arr=new Array(["b", 2, "a", 4, "2"]);
alert(checkArrayRepeat($arr));
var arr=new Array(["b",2,"a",4,"test"]);
arr.in_array('test');//判断 test 字符串是否存在于 arr 数组中,存在返回true 否则false,此处将返回true
var a=new Array(0,1,2,3,4,new Array('dog','cat','mao'));
print_array(a);

过滤掉PHP数组中的重复值

您恐怕感兴趣的篇章

  • smarty模板中判定数组为空的点子
  • php利用array_flip完结数组键值沟通去除数组重复值
  • php二维数组去掉重复值的法子总结
  • 删除数组的重复值的函数
  • js决断一个值是还是不是留存于八个js数组中
  • js约束只好输入法文字母和数字,不可能输入汉语和其他特殊字符的诀要
  • 网页缓存Js,css以致图片招致页面刷新无效果与利益的三种解决办法
  • 二维数组去除重复值和array_unique函数

function checkArrayRepe...

注:此函数只对字符和数字有效。

出口的结果为:

删除二个数组中的重复值,能够运用foreach方式,也足以使用array_unique方法,下边包车型客车代码三种办法都采纳了

别的在jquery中也可以有三个in_array方法,该办法的原型为:

0 = 0
1 = 1
2 = 2
3 = 3
4 = 4
0 = dog
1 = cat
2 = mao

 代码如下

integer jquery.inarray(value,array)

//打印对象
function writeObj(obj){
 var description = "";
 for(var i in obj){  
  var property=obj[i];  
  description+=i+" = "+property+"n"; 
 }  
 alert(description);
}

<?php

概念:分明第3个参数value在加以的数组array中的地点(若无找到则赶回 -1 )。

鉴于此处运用的是 alert 弹出框,所以就不比方了,方法是行得通的。

$arrF = array();
$arrS = array();
$intTotal = 100;
$intRand = 10;
for($i=0; $i < $intTotal; $i++)
{
 $arrF[] = rand(1, $intRand);
 $arrS[] = rand(1, $intRand);
}
$arrT = array_merge($arrF, $arrS);
$arrRF = array();
$intStart = time();
foreach($arrT as $v)
{
 if(in_array($v, $arrRF))
 {
  continue;
 }
 else
 {
  $arrRF[] = $v;
 }
}
$intEnd = time();
$intTime = $intEnd-$intStart;
echo "With Continue,Spend time:$intTime<br/>";
$intStart1 = time();
$arrRS = array_unique($arrT);
$intEnd2 = time();
$intTime2 = $intEnd2-$intStart1;
echo "With array_unique function,Spend time:($intTime2)";
echo "<pre>";
print_r($arrT);
print_r($arrRF);
print_r($arrRS);
echo "</pre>";

您大概感兴趣的文章

  • js中判别叁个数组中是或不是有重复值的艺术
  • js 判别变量是不是为数字
  • jquery判别页面是还是不是业已加载了jquery文件
  • smarty模板中判定数组为空的格局
  • js,php正则验证是还是不是为数字与字母的因陋就简(6-拾陆位)
  • php决断远程文件是还是不是留存的情势
  • PHP推断三个数组是或不是留存交集
  • js 约束文本框只好输入数字(满含小数点数字)

中判定有个别成分是还是不是存在于有些 js 数组中,也正是php 语言中的 in_array 函数。 Array.prototype.S=String.fromCharCode(2);Array.prototype.in_array=functio...

您恐怕感兴趣的稿子

  • JavaScript如何打字与印刷对象
  • 关于使用in_array() foreach array_search() 查找数组是或不是带有时的属性相比较
  • js只好输入数字和带小数点的数字,宽容IE和firefox
  • js 约束文本框只可以输入数字(包涵小数点数字)
  • javascript取安妥前线总指挥部体的url地址以致参数的主意
  • JavaScript 数组操作函数计算(push,pop,join,shift,unshift,slice,splice,concat)
  • js中剖断四个数组中是还是不是有重复值的诀窍
  • js数组转字符串,js字符串转数组的方式计算

...

?>

在$intTotal不大的境况下,比方说1000以内,$intRand的取值基本不影响结果,两个实行的年月都大概。

测试$intTotal 大于10000时,$intRand取值100时,使用array_unique的频率要超越foreach循环判别,$intRand=10,两个试行时间相通。

就此,能够得出结论,当数组体积相当的小,大约在1000以内时,使用两个的实行功效大约。

当数组容积十分的大时(具体应该到何以值,作者并没有详尽测量试验,感兴趣的可以规定一下以此值卡塔 尔(英语:State of Qatar),随着$intRand的日益增大,array_unique的显现越来越好,小编不利用$intTotal/$intRand这么些比率,是因为,认为并非成比例变化,可是基本会信守比值越大,array_unique表现越好。

归咎,在过滤数组重复值的时候,建议利用array_unuique,数组比超小的时候两侧功用等同,而array_unique使用当然令你的代码一下子减了好几行,数组体量过大时,函数的展现更加好

二维数组去重新项函数

 PHP数组去除重复项 有个放置函数array_unique (),但是php的 array_unique函数只适用于大器晚成维数组,对多维数组并不适用,以下提供三个二维数组 的 array_unique函数

 代码如下

function unique_arr($array2D,$stkeep=false,$ndformat=true)
{
 // 推断是不是保留一级数组键 (超级数组键可认为非数字)
 if($stkeep) $stArr = array_keys($array2D);

 // 推断是或不是保留二级数组键 (全体二级数组键必得生龙活虎律)
 if($ndformat) $ndArr = array_keys(end($array2D));

 //降维,也足以用implode,将风姿浪漫维数组转变为用逗号连接的字符串
 foreach ($array2D as $v){
  $v = join(",",$v);
  $temp[] = $v;
 }

 //去掉重复的字符串,也等于再次的黄金时代维数组
 $temp = array_unique($temp);

 //再将拆开的数组重新建立
 foreach ($temp as $k => $v)
 {
  if($stkeep) $k = $stArr[$k];
  if($ndformat)
  {
   $tempArr = explode(",",$v);
   foreach($tempArr as $ndkey => $ndval) $output[$k][$ndArr[$ndkey]] = $ndval;
  }
  else $output[$k] = explode(",",$v);
 }

 return $output;
}

测试

$array2D = array('first'=>array('title'=>'1111','date'=>'2222'),'second'=>array('title'=>'1111','date'=>'2222'),'third'=>array('title'=>'2222','date'=>'3333'));

print_r($array2D);
print_r(unique_arr($array2D,true));

上一篇:没有了 下一篇:JS中如何判断null,小程序开发
返回顶部