JS 对数组的操做集锦(基础)

下面内容是本身复习基础时候整理出来的,感谢缪雪峰老师的课程让本身能够有节奏的复习基础的东西!javascript

  如下内容颜色是重点关注,已经特别注意提醒,不是为了颜色好看噢,但愿能帮到刚学习前端的朋友们,后续还会持续更新!
前端

 

JavaScript的Array能够包含任意数据类型,并经过索引来访问每一个元素。java

要取得Array的长度,直接访问length属性:数组

var arr = [1, 2, 3.14, 'Hello', null, true]; arr.length; // 6

请注意,直接给Arraylength赋一个新的值会致使Array大小的变化:学习


var arr = [1, 2, 3]; arr.length; // 3 arr.length = 6; arr; // arr变为[1, 2, 3, undefined, undefined, undefined] arr.length = 2; arr; // arr变为[1, 2]

Array能够经过索引把对应的元素修改成新的值,所以,对Array的索引进行赋值会直接修改这个Arrayspa

例:
var arr = ['A', 'B', 'C']; arr[1] = 99; arr; // arr如今变为['A', 99, 'C']
 

请注意,若是经过索引赋值时,索引超过了范围,一样会引发Array大小的变化:code

 var arr = [1, 2, 3];排序

arr[5] = 'x'; arr; // arr变为[1, 2, 3, undefined, undefined, 'x']

 

获取数组元素位置索引

indexOf

String相似,Array也能够经过indexOf()来搜索一个指定的元素的位置:three

var arr = [10, 20, '30', 'xyz']; arr.indexOf(10); // 元素10的索引为0 arr.indexOf(20); // 元素20的索引为1 arr.indexOf(30); // 元素30没有找到,返回-1 arr.indexOf('30'); // 元素'30'的索引为2 

注意了,数字30和字符串'30'是不一样的元素。

 

截取数据中部分元素返回新数组

slice

slice()就是对应Stringsubstring()版本,它截取Array的部分元素,而后返回一个新的Array

var arr = ['A', 'B', 'C', 'D', 'E', 'F', 'G']; arr.slice(0, 3); // 从索引0开始,到索引3结束,但不包括索引3: ['A', 'B', 'C'] arr.slice(3); // 从索引3开始到结束: ['D', 'E', 'F', 'G'] 

注意slice()起止参数包括开始索引,不包括结束索引

若是不给slice()传递任何参数,它就会从头至尾截取全部元素。利用这一点,咱们能够很容易地复制一个Array

var arr = ['A', 'B', 'C', 'D', 'E', 'F', 'G']; var aCopy = arr.slice(); aCopy; // ['A', 'B', 'C', 'D', 'E', 'F', 'G'] aCopy === arr; // false

数组末尾添加和删除元素

push和pop

push()Array末尾添加若干元素pop()则把Array最后一个元素删除掉

push()
var arr = [1, 2]; arr.push('A', 'B'); // 返回Array新的长度: 4 arr; // [1, 2, 'A', 'B']

pop() arr.pop(); // pop()返回'B' arr; // [1, 2, 'A'] arr.pop(); arr.pop(); arr.pop(); // 连续pop 3次 arr; // [] arr.pop(); // 空数组继续pop不会报错,而是返回undefined arr; // []

数组头部添加和删除元素

unshift和shift

unshift
var arr = [1, 2]; arr.unshift('A', 'B'); // 返回Array新的长度: 4 arr; // ['A', 'B', 1, 2]

shift arr.shift(); // 'A' arr; // ['B', 1, 2] arr.shift(); arr.shift(); arr.shift(); // 连续shift 3次 arr; // [] arr.shift(); // 空数组继续shift不会报错,而是返回undefined arr; // []

数组元素排序
sort

sort()能够对当前Array进行排序,它会直接修改当前Array的元素位置,直接调用时,按照默认顺序排序:

var arr = ['B', 'C', 'A']; arr.sort(); arr; // ['A', 'B', 'C']
反转排序

reverse

 

reverse()把整个Array的元素给掉个个,也就是反转

 
var arr = ['one', 'two', 'three']; arr.reverse(); arr; // ['three', 'two', 'one']
修改数组的万能钥匙(SPLICE)

splice

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

var arr = ['Microsoft', 'Apple', 'Yahoo', 'AOL', 'Excite', 'Oracle']; // 从索引2开始删除3个元素,而后再添加两个元素: arr.splice(2, 3, 'Google', 'Facebook'); // 返回删除的元素 ['Yahoo', 'AOL', 'Excite'] arr; // ['Microsoft', 'Apple', 'Google', 'Facebook', 'Oracle'] // 只删除,不添加: arr.splice(2, 2); // ['Google', 'Facebook'] arr; // ['Microsoft', 'Apple', 'Oracle'] // 只添加,不删除: arr.splice(2, 0, 'Google', 'Facebook'); // 返回[],由于没有删除任何元素 arr; // ['Microsoft', 'Apple', 'Google', 'Facebook', 'Oracle']
链接连个数组返回新的数组

concat

concat()方法把当前的Array和另外一个Array链接起来,并返回一个新的Array

 
var arr = ['A', 'B', 'C']; var added = arr.concat([1, 2, 3]); added; // ['A', 'B', 'C', 1, 2, 3] arr; // ['A', 'B', 'C']

请注意concat()方法并没有修改当前Array,而是返回了一个新的Array

实际上,concat()方法能够接收任意个元素和Array,而且自动把Array拆开,而后所有添加到新的Array




把数组里每一个元素用指定字符链接
var arr = ['A', 'B', 'C']; arr.concat(1, 2, [3, 4]); // ['A', 'B', 'C', 1, 2, 3, 4]

   join

join()方法是一个很是实用的方法,它把当前Array每一个元素用指定的字符串链接起来,而后返回链接后字符串

 


若是的元素不是字符串,将自动转换为字符串后再链接。var arr = ['A', 'B', 'C', 1, 2, 3]; arr.join('-'); // 'A-B-C-1-2-3'Array
 

多维数组

 

若是数组的某个元素又是一个Array,则能够造成多维数组,例如:

var arr = [[1, 2, 3], [400, 500, 600], '-'];

上述Array包含3个元素,其中头两个元素自己也是Array

相关文章
相关标签/搜索