可以對陣列進行增刪,插入。與js不同的是這些函式都是全域性的,js則是掛在array.prototype上。
1,對陣列尾部的操作pop(刪除最後的元素)、push(在尾部新增)
@goods = qw/pen pencil/;在perl中,函式呼叫時小括號是可選的(視上下文而定),就象前面使用的print。以下是等價的pop(@goods); # @goods 變成 (pen)
push(@goods, 'brush'); # @goods 變為 (pen, brush)
pop @goods; # @goods 變成 pen2,對陣列首部的操作shift(刪除第乙個元素)、unshift(在首部新增元素)push @goods, 'brush'; # @goods 變為 (pen, brush)
3,任意位置刪除或插入splice
4,逆序陣列,perl有reverse函式,js沒有對應函式。
5,排序陣列sort,perl和js都有。
2,3,4,5提到的函式不貼演示**了。
6,js使用length屬性獲取陣列長度,perl不同,有3種方式獲取
@goods = qw/pen pencil/;7,遍歷陣列,perl用foreach函式# 將陣列變數賦值給乙個標量變數
$len = @goods;
# 使用scalar函式
$len = scalar(@goods);
# 最後乙個元素的索引加1
$len = $#goods + 1;
@goods = qw/pen pencil brush/;es5可以用foreach# 預設的$_
foreach (@goods)
# 自定義變數
foreach $item (@goods)
['pen', 'pencil', 'brush'].foreach(function(item) )
1,獲取keys和values
%person = (es5有object.keys,但沒有object.valuesname => 'jack',
age => 30,
);@k = keys %person; # (name, age)
@v = values $person; # ('jack', 30)
person =
object.keys(person) // ['name', 'age']
2,獲取鍵值對(key-value)數量(對perl來說很容易)
%person = (對於js來說,可能需要for in整個物件name => 'jack',
age => 30,
);$len = keys %person; # 2
function getobjlen(obj)
return len
}var person =
getobjlen(person) // 2
3,遍歷物件
perl有兩種方式,一種while+each,一種獲取keys再foreach。
%person = (js乙個for in即可。name => 'jack',
age => 30,
);# 方式1
while ( ($k, $v) = each %person )
# 方式2
@keys = keys %person;
foreach(@keys) ."\n";
}
4,判斷某個key是否存在,perl用exists函式
%person = (js用in運算子。name => 'jack',
age => 30,
);if (exists $person) else
5,刪除key,都用delete,但perl是函式,js是運算子
%person = (perl裡雜湊很容易就被轉成陣列name => 'jack',
age => 30,
);delete $person;
%person = (陣列轉成雜湊name => 'jack',
age => 30,
);@arr = %person; # 將雜湊轉成陣列 變成了('name', 'jack', 'age', 30)
@nums = qw/zero 0 one 1 two 2/;列印如下%hash = @nums;
while( ($k, $v) = each %hash )
以上互換js裡沒有原生支援,需自行實現。
神奇的Perl 雜湊和陣列 6
1.1.1 each values keys sort 1 each each一般作用於雜湊和陣列,以2元素的列表形式返回雜湊的鍵值對和陣列的索引 值對。語法如下 each hash each array 比如 while key value each hash while index,value ...
Perl的列表與陣列
perl的列表相當於陣列 雜湊等資料結構的字面量,即可用於初始化陣列和雜湊,其形式為 x1,x2,x3,若列表中的元素均為字串,則可以用另一種便捷的形式 qw x1 x2 x3 範圍運算子 1.10 表示該列表包含1到10之間的10個數字,字母也可使用 陣列形式為 array 基本操作如下 初始化 ...
perl 中位值 二維雜湊 陣列的雜湊 排序 取整
use list util qw sum use posix sub median int 2 ceil 2 2 my a qw 1 2 3 4 my med median a 就可以得到陣列 a的中位值為2.5 構造二維雜湊 my hash foreach my i 1.10 i j 訪問fore...