这次要介绍的是js的数组对象,其实在js里面他本质上是一种object对象(他的原型),创建和使用方法和python有点类似,最重要的一点数组里面的数据类型可以是各种类型。
创建数组对象
使用Array()
的方式或者直接用[]
来创建一个数组。
|
为了创建一个长度不为0,但是又没有任何元素的数组,可选以下任何一种方式:
|
这里还有一些特殊情况需要进行说明
|
结果测试:
填充数组
可以使用类似赋值操作的方法来填充元素,如果你在以上代码中给数组操作符的是一个非整形数值,那么将作为一个代表数组的对象的属性(property)创建,而非作为数组的元素。
|
数组方法
关于数组的方法其实很多,这里我们不会一一详细介绍,大概就给一些常用的函数。concat()
连接两个数组并返回一个新的数组。join(deliminator = ',')
将数组的所有元素连接成一个字符串。push()
在数组末尾添加一个或多个元素,并返回数组操作后的长度。sort()
给数组元素排序。pop()
从数组移出最后一个元素,并返回该元素。slice(start_index, upto_index)
从数组提取一个片段,并作为一个新数组返回。
map(callback[, thisObject])
在数组的每个单元项上执行callback
函数,并把返回包含回调函数返回值的新数组(译者注:也就是遍历数组,并通过callback对数组元素进行操作,并将所有操作结果放入数组中并返回该数组)。
|
filter(callback[, thisObject])
返回一个包含所有在回调函数上返回为true的元素的新数组(译者注:callback在这里担任的是过滤器的角色,当元素符合条件,过滤器就返回true,而filter则会返回所有符合过滤条件的元素)。
|
every(callback[, thisObject])
当数组中每一个元素在callback
上被返回true时就返回true(译者注:同上,every其实类似filter
,只不过它的功能是判断是不是数组中的所有元素都符合条件,并且返回的是布尔值)。
|
some(callback[, thisObject])
只要数组中有一项在callback上被返回true,就返回true(译者注:同上,类似every,不过前者要求都符合筛选条件才返回true,后者只要有符合条件的就返回true)。
|
数组推导式
这个其实有点类似于python里面的列表推导式或者列表条件筛选操作,主要还是对上面的map()和filter()做了一些改进吧,让他的使用更方便了。
|
这种方法等价于map函数
|
|
这种方法等价于filter函数
|