JS学习五:数组
一、定义数组、数组的长度、循环取值,下标取值:
定义数组方式一:
var arr1 = []
var arr = ['a', 'b', 'c'] console.log(arr[0]) //打印:'a'
遍历数组方式一: for循环
for (var i = 0; i < arr.length; i ++) { console.log("arr[%d] = %s", i, arr[i]) } //这里的i是数值类型,数组的下标
遍历数组方式二:for in 循环
for (var i in arr) { console.log("arr[%s] = %s", i, arr[i]) } // 这里的i是字符串类型,数组的下标
数组的类型是object对象:
console.log(typeof(arr)) // object
对象,包含属性和方法。
定义数组方式二:
var arr = new Array(); console.log(arr) //输出:[] console.log(typeof(arr)) // object
var arr = new Array(5); console.log(typeof(arr)) // object console.log(arr) // [empty * 5]
下标操作:
数组更新,使用下标:
arr[0] = 'abc'
更新数组的length,相当于删除数组靠后的元素:
arr.length = 2
赋值或更新元素,超过数组的长度时,用undefined补全不足部分:
arr[10] = 'z'
删除元素:只是删除元素的值,元素所在的下标位置不变,值变为undefined:
var arr = [1,2,3];
delete arr[0]
console.log(arr[0]) // 返回 undefined
console.log(arr) // [empty, 2, 3]
console.log(arr.length) // 3
使用forEach(function)方法,遍历数组:
var arr = ['a', 'b', 'c']
arr.forEach(function(item) {
console.log(item)
}) //返回'a','b','c'
二、数组的一些方法
1.push:在数组末尾,添加元素:
arr.push('d')
2.unshift:在数组头部,添加元素:
arr.unshift('0')
3.pop:删除数组中最后一个元素:
arr.pop()
4.shift:删除数组中头部的元素:
arr.shift()
5.join:拼接数组为字符串,返回拼接后的字符串,不修改原数组:
console.log(.join("&")) //a&b&c
6.reverse:反转数组中的元素,原地修改数组:
arr.reverse() // ['c','b','a']
7.slice:获取指定范围内的元素,不修改原数组,返回新数组:
console.log(arr.slice(0,1)) // ['a']
8.splice:替换指定范围内的元素,(起始下标,修改的个数,替换后的值1,替换后的值2......):
arr.splice(1,1, 'bb') // arr变成:['a', 'bb', 'c']
9.splice:在指定的索引前面,插入元素;方法同上,只是将修改的个数改为0即可:(起始下标,0,插入的值1,插入的值2......)
arr.splice(1, 0, 'aa', 'aaa') //修改后的数组arr:["a", "aa", "aaa", "b", "c"]
10.concat:拼接数组,不修改原数组,返回拼接后的数组:
var arr = ['a', 'b', 'c'] var a = arr.concat(['d', 'e']) console.log(a) //["a", "b", "c", "d", "e"]
11.indexOf:根据值,查找值对应的第一个索引;没找到,返回-1:
console.log(arr.indexOf('b')) //返回下标:1
12.lastIndexOf:根据值,查找值对应的最后一个索引;没找到,返回-1:
console.log(arr.lastIndexOf('b'))
三、数组排序:
冒泡排序:
使用sort方法:
var arr = [1,7,2,5,6,3,2,1,5]; arr.sort(); console.log(arr); // [1, 1, 2, 2, 3, 5, 5, 6, 7]
按字符串长度排序:
var arr = new Array(); arr[0] = 'work' arr[1] = 'we' arr[2] = 'women' arr[3] = 'w' arr[4] = 'workend' arr.sort(function(x, y){ return x.length > y.length }) // x为当前元素,y为下一个元素
x的长度大于y的长度,就交换x,y的位置。
arr排序后为: ["w", "we", "work", "women", "workend"]
四、多维数组:
posted on 2018-11-18 13:09 myworldworld 阅读(85) 评论(0) 收藏 举报