如何判断一个元素在数组中的位置

Python07

如何判断一个元素在数组中的位置,第1张

可以用数组的indexOf函数,方法arr.indexOf(find,start)find:要找的内容,必须;start:查找开始下标,可选;返回:查找数据所在的下标,如果没找到,返回-1如果只要知道是否有8这个数字,直接调用arr.indexOf(8),如果返回值不为-1,说明找到了12345var s=[1,2,3,5,6,9]var u=s.indexOf(5)//返回5所在的下标3var d=s.indexOf(8)//返回-1console.log(u)console.log(d)

判断两个数组所有元素是否相同

直接比较数组名字即可,不必逐个元素比较。my@a= (1..10) my@b= (1..10) if(@a==@b) {print"equal\n"#equal}

但需要注意一点,如果是数组的引用,那么就不能直接比较了。必须先解引用再比较。my$aref1= [1..10] my$aref2= [1..10] if($aref1==$aref2) {print"equal\n"# not equal}

先解引用再比较my$aref1= [1..10] my$aref2= [1..10] if(@$aref1== @$aref2) {print"equal\n"# equal}打印数组

最笨的方法,多半来自其他语言比较熟悉的coder们。其中$#numbers表示数组numbers的最后一个元素的下标。在这里时9,所有要使用<=,而不是<,否则会漏掉最后一个元素。my@numbers= (1..10)for(my$i=0$i<= $#numbers++$i) {print$numbers[$i],"\n"}

其实普通数组直接打印即可,无需遍历。my@a= (1..10) print@a

方法一

直接遍历数组,逐个元素判断。方法二是用grepmy@Colors= ('Red','Green','Yellow',)if(grep{$_eq'Red'}@Colors) {print"Exists!\n"}}方法三

如果是perl 5.10.0以上,可以使用智能匹配,如下。my@array= (1,2,3,4,5) my$var=2if($var~~@array) {print"$var exists in (@array)\n"}定义空列表

定义空列表用(),而不是undef

下面代码输出1,这种写法表示列表的第一个元素是undef.严格的说并不是空列表。my@list=undefpush@list,1push@list,2print$list[1],"\n"#Output 1

下面代码输出2my@list= ()push@list,1push@list,2print$list[1],"\n"#Output 2

unless(xxx) 与 unless defined(xxx)

这两者是不一样的,前者表示xxx为假的时候执行代码,而后者表示xxx未定义时执行代码,也就是只有当xxx==undef时,后者才会执行,而前者以下几种情况都会执行的。xxx==undefxxx=0xxx='0'xxx=''xxx=""

将数组元素分组