一、数组
可以对数组进行增删,插入。与JS不同的是这些函数都是全局的,JS则是挂在Array.prototype上。
1,对数组尾部的操作pop(删除最后的元素)、push(在尾部添加)
1 2 3 |
|
在Perl中,函数调用时小括号是可选的(视上下文而定),就象前面使用的print。以下是等价的
1 2 |
|
2,对数组首部的操作shift(删除第一个元素)、unshift(在首部添加元素)
3,任意位置删除或插入splice
4,逆序数组,Perl有reverse函数,JS没有对应函数。
5,排序数组sort,Perl和JS都有。
2,3,4,5提到的函数不贴演示代码了。
6,JS使用length属性获取数组长度,Perl不同,有3种方式获取
1 2 3 4 5 6 7 8 9 10 |
|
7,遍历数组,Perl用foreach函数
1 2 3 4 5 6 7 8 9 10 11 |
|
ES5可以用forEach
1 2 3 |
|
二、哈希
1,获取keys和values
1 2 3 4 5 6 |
|
ES5有Object.keys,但没有Object.values
1 2 3 4 5 |
|
2,获取键值对(key-value)数量(对Perl来说很容易)
1 2 3 4 5 |
|
对于JS来说,可能需要for in整个对象
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
3,遍历对象
Perl有两种方式,一种while+each,一种获取keys再foreach。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
JS一个for in即可。
4,判断某个key是否存在,Perl用exists函数
1 2 3 4 5 6 7 8 9 |
|
JS用in运算符。
5,删除key,都用delete,但Perl是函数,JS是运算符
1 2 3 4 5 |
|
三、数组与哈希互换
Perl里哈希很容易就被转成数组
1 2 3 4 5 |
|
数组转成哈希
1 2 3 4 5 |
|
打印如下
以上互换JS里没有原生支持,需自行实现。