Ⅰ 数组定义
var l = [11,22,33,44,55]
typeof l
"object"
var l1 = [11,'sdasd',11.11,true]
l1[1]
"sdasd"
l1[-1] # 不支持负数索引
.length -- 数组的大小
.push(ele) --尾部追加元素
.pop() -- 获取尾部的元素,同时从数组中删除
.unshift(ele) -- 头部插入元素
.shift() -- 头部移除元素
.slice(start, end) -- 切片
.reverse() -- 反转
.join(seq) -- 将数组元素连接成字符串
.concat(val, ...) -- 连接数组
.sort() -- 排序
关于sort()需要注意:
如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进行排序。
var l = [111,222,333,444,555,666]
undefined
l.length // 查看列表有几个元素
6
l.push(777) // 尾部追加添加值
7
l
(7) [111, 222, 333, 444, 555, 666, 777]
l.pop() // 拿掉最后一个参数,并返回
777
l
(6) [111, 222, 333, 444, 555, 666]
l.unshift(123) // 头部插入元素
7
l
(7) [123, 111, 222, 333, 444, 555, 666]
l.shift() // 头部移除元素,拿到移除结果
123
l.slice(0,3) // 切片
(3) [111, 222, 333]
l.reverse() // 反转
(6) [666, 555, 444, 333, 222, 111]
l.join('$') # 跟python刚好相反,这里是将数组链接成字符串样式
"666$555$444$333$222$111"
l.concat([111,222,333]) # extend // 链接数组,两个拼接一个
(9) [666, 555, 444, 333, 222, 111, 111, 222, 333]
l.sort() // 排序,默认升序
(6) [111, 222, 333, 444, 555, 666]
Ⅱ .forEach()--将数组的每个元素传递给回调函数
var ll = [111,222,333,444,555,666]
ll.forEach(function(value){console.log(value)},ll)
VM2277:1 111 # 一个参数就是数组里面每一个元素对象
VM2277:1 222
VM2277:1 333
VM2277:1 444
VM2277:1 555
VM2277:1 666
ll.forEach(function(value,index){console.log(value,index)},ll)
VM2346:1 111 0 # 两个参数就是元素 + 元素索引
VM2346:1 222 1
VM2346:1 333 2
VM2346:1 444 3
VM2346:1 555 4
VM2346:1 666 5
undefined
ll.forEach(function(value,index,arr){console.log(value,index,arr)},ll) # 元素 + 元素索引 + 元素的数据来源
VM2430:1 111 0 (6) [111, 222, 333, 444, 555, 666]
VM2430:1 222 1 (6) [111, 222, 333, 444, 555, 666]
VM2430:1 333 2 (6) [111, 222, 333, 444, 555, 666]
VM2430:1 444 3 (6) [111, 222, 333, 444, 555, 666]
VM2430:1 555 4 (6) [111, 222, 333, 444, 555, 666]
VM2430:1 666 5 (6) [111, 222, 333, 444, 555, 666]
undefined
ll.forEach(function(value,index,arr,xxx){console.log(value,index,arr,xxx)},ll) # 最多三个
VM2532:1 111 0 (6) [111, 222, 333, 444, 555, 666] undefined
VM2532:1 222 1 (6) [111, 222, 333, 444, 555, 666] undefined
VM2532:1 333 2 (6) [111, 222, 333, 444, 555, 666] undefined
VM2532:1 444 3 (6) [111, 222, 333, 444, 555, 666] undefined
VM2532:1 555 4 (6) [111, 222, 333, 444, 555, 666] undefined
VM2532:1 666 5 (6) [111, 222, 333, 444, 555, 666] undefined
Ⅲ .splice()--删除元素,并向数组添加新元素。
ll
(6) [111, 222, 333, 444, 555, 666]
ll.splice(0,3) # 两个参数 第一个是起始位置 第二个是删除的个数
(3) [111, 222, 333]
ll
(3) [444, 555, 666]
ll.splice(0,1,777) # 先删除指定内容,然后添加新内容
[444]
ll
(3) [777, 555, 666]
ll.splice(0,1,[111,222,333,444]) // 会将数组当成一个参数
[777]
ll
(3) [Array(4), 555, 666]
Ⅳ .map()--返回一个数组元素调用函数处理后的值的新数组
var l1 = [11,22,33,44,55,66]
undefined
l1.map(function(value){console.log(value)},l1)
VM3115:1 11
VM3115:1 22
VM3115:1 33
VM3115:1 44
VM3115:1 55
VM3115:1 66
l1.map(function(value,index){return value*2},l1)
(6) [22, 44, 66, 88, 110, 132]
l1.map(function(value,index,arr){return value*2},l1)
(6) [22, 44, 66, 88, 110, 132]