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)    收藏  举报

导航