JavaScript总结之数组操作(二)

  JavaScript的数组Array可以包含任何数据类型,并通过索引来访问每个元素。例如要获得数组Array的长度,可以直接访问数组Array的length属性:

var arr = [1, 6, true, null, 9, 'hello'];
arr.length;        //返回6

若直接给数组Array的length赋予一个新的值会导致数组Array大小的变化:

var arr = [1, 6, 'hello', null];
arr.length;         //返回4
arr.length=6;
arr;                //arr变为[1, 6, 'hello', null, undefined, undefined]
arr.length=3;
arr;                //arr变为[1, 6, 'hello']

若数组Array通过索引把对应的元素修改成新的值(包括索引超过了范围),数组Array也会发生变化:

var arr = [1, 6, 'hello', null];
arr[1] = 99;
arr;               //arr变为[1, 99, 'hello', null]
arr[5] = true;
arr;               //arr变为[1, 99, 'hello', null, undefined, true]

  与字符串一样,JavaScript也为数组操作提供了一些函数方法。

indexOf() 与String的类似,搜索一个指定的元素的位置:

var arr = [1, 6, 'hello', null];
arr.indexOf(null);        //返回3
arr.indexOf(6);           //返回1
arr.indexOf('6');         //没有找到元素'6',返回-1

slice() 对应String的substring() ,截取数组Array部分元素,返回一个新的数组Array:

var arr = [1, 6, 'hello', null];
arr.slice(0, 2);        //返回[1, 6]
arr.slice(3);           //返回[null]
arr.slice();            //返回[1, 6, 'hello', null]

push() 往数组Array的末尾添加若干元素,pop() 则把数组Array的最后一个元素删除掉:

var arr = [1, 6, 'hello', null];
arr.push(99, 'A');
arr;            //arr变为[1, 6, 'hello, null, 99, 'A']
arr.pop();
arr;            //arr变为[1, 6, 'hello, null, 99]

unshift() 往数组Array的头部添加若干元素,shift() 则把数组Array的第一个元素删掉:

var arr = [1, 6, 'hello', null];
arr.unshift(99, 'A');
arr;            //arr变为[99, 'A', 1, 6, 'hello, null]
arr.shift();
arr;            //arr变为['A', 1, 6, 'hello, null]

sort() 是对数组Array的当前元素进行排序,而reverse() 则是颠倒数组Array中元素的顺序:

var arr=[1, 'C', 'A', 9];
arr.sort();            //返回[1, 9, "A", "C"]
arr.reverse();         //返回["C", "A", 9, 1]

splice() 方法是修改数组Array的“万能方法”,它可以从指定的索引开始删除若干元素,然后再从该位置添加若干元素:

var arr = [1, 6, 'hello', null];
//从索引1开始删除2个元素,然后再添加2个元素
arr.splice(1, 2, 'A', 99);     //返回删除的2个元素[6, 'hello']
arr;       //arr变为[1, 'A', 99, null]
arr.splice(2, 1);              //返回从索引2开始删除的1个元素[99]
arr;       //arr变为[1, 'A', null]

 

posted @ 2018-10-30 22:40  连城无忧  阅读(235)  评论(0编辑  收藏  举报