JavaScript 数组操作全解

JavaScript数组元素可以是任何值,并且都是可以通过索引来获取对应的元素,索引从0开始。

一、Array长度

可以通过length属性获得Array的长度,同时也可以改变Array的长度。

例如:

var arr=[1,2,3.14,'12','?']
console.log(arr.length)//5
arr.length = 8;
console.log(arr)
console.log(arr[6])
array长度-01

二、查找和修改元素

上面已经说过可以通过索引在找到元素,反过来也可以通过索引来改变元素。

例如:

console.log(arr[2])
arr[2] = 3;
console.log(arr)
查找与修改元素-02

另外还可以用过索引来改变数组的长度。

例如:

var arr1 = ['a','b','c','d'];
console.log(arr1.length)
arr1[5] = 'e';
console.log(arr1)
console.log(arr1.length)
改变数组长度-03

三、indexOf指定元素位置

数组可以通过indexOf()方法来搜索指定元素在数组中的位置,也就是查找索引是多少。

例如:

var arr2=[1,2,3,'a','b']
console.log(arr2.indexOf('a'))//3

四、slice 截取数组

Slice(start,end)方法就像substr等截取字符串长度的方法一样,只不过slice只用于数组,返回一个新的Array。Slice()包含两个可选参数,第一个是截取数组的开始位置,第二个参数结束位置,截取的数组元素不包含第二个参数。

例如:

var arr3 = ['a','b',1,2,3]
console.log(arr3.slice(0,2))//["a", "b"]

如果不传参数会怎么样?利用Slice的这一特性,可以复制一个新的数组。

例如:

var arr4 = arr3.slice()
console.log(arr4)//["a", "b", 1, 2, 3]

五、数组元素的添加和删除

【1】push和pop

push()是从Array的末尾添加元素,而pop是把Array的最后一个元素删除,返回所删除的元素。

例如:

var arr = ['a','b','c',1,2,3];
arr.push(4);
console.log(arr);
arr.pop();
console.log(arr)
从数组后面操作-04

【2】unshift和shift

Unshift和push的用法相同,作用刚好相反。Unshift是在数组的前面对数组进行添加和使用shift在数组的前面对数组进行删除的方法。

例如:

var arr = ['a','b','c',1,2,3];
arr.unshift('121212');
console.log(arr);
arr.shift();
console.log(arr)
从数组前面操作-05

【3】splice

splice() 方法向/从数组中添加/删除项目,然后返回被删除的项目。Splice()方法是既不是从前面操作数组也不是从后面操作数组,而是可以指定一个位置,从该位置开始删除指定的元素个数,然后再从该位置增加若干元素。

语法:arrayObject.splice(index,howmany,item1,…..,itemX)

例如:

var arr1 = [1,2,3,4,'a','b','c'];
console.log(arr1.splice(0,4,'12','34'))//[1, 2, 3, 4]
console.log(arr1);// ["12", "34", "a", "b", "c"]

Splice也可以是只删除不增加,只需要写前面两个参数。

六、数组的排序

【1】顺序

数组是一个集合,一推无序的元素。所以可以使用sort()对数组进行排序,直接调用时,按照默认顺序排序。

例如:sort

var arr = ['b','a','c','e','d'];
var arr1 = [1,3,4,2,8,6,7]
var arr2 = ['b','a','c',1,3,4,2,8,6,7,'e','d']
console.log(arr.sort())// ["a", "b", "c", "d", "e"]
console.log(arr1.sort())//[1, 2, 3, 4, 6, 7, 8]
console.log(arr2.sort())//[1, 2, 3, 4, 6, 7, 8, "a", "b", "c", "d", "e"]

【2】倒叙reverse

Reverse()方法和sort()方法对立,倒叙。

例如:

console.log(arr.reverse())// ["e", "d", "c", "b", "a"]
console.log(arr1.reverse())//[8, 7, 6, 4, 3, 2, 1]
console.log(arr2.reverse())//["e", "d", "c", "b", "a", 8, 7, 6, 4, 3, 2, 1]

七、连接数组

【1】数组连接concat

字符串之间可以用【+】或者反引号 【`…`】连接,那数组呢?用什么方法连接两个数组?

数组之间的连接方法用concat(),其实它是破坏数组,把一个数组拆开,然后然后接收其他的数组或者元素,在返回一个新的数组。Concat()里面的参数就是所插入的元素。

例如:

var arr = ['b','a','c','e','d'];
var arr1 = [1,3,4,2,8,6,7]
arr.concat(arr1)
console.log(arr.concat(arr1))//["b", "a", "c", "e", "d", 1, 3, 4, 2, 8, 6, 7]

【2】字符连接join

join()方法是一个使用在数组元素中的方法,连接数组元素,join()所带的参数就是连接元素的连接符。返回的是一个字符串。如果数组内的元素不是字符串类型的,join()会自动把它变成字符串类型的再进行连接。

例如:

var arr = [1,3,4,2,8,6,7];

console.log(arr.join(1));//1131412181617
console.log(typeof(arr.join(1)));//string

console.log(arr.join('-'));//1-3-4-2-8-6-7
console.log(typeof(arr.join('-')));//string

八、多维数组

多维数组比较好理解,就是数组的某个或者多个元素是一个数组,数组中的数组,就是多维数组。

方法都是一样的,把数组里面的数组当作整体来处理就是简单了很多。访问多维数组中的元素一样也是通过索引。

例如:

var arr = [1,2,[3,4,5,],[6,7],['8','9']];
console.log(arr);//[1, 2, Array(3), Array(2), Array(2)]
console.log(arr[2][1]);//4
微信公众号
手机浏览(小程序)
0
分享到:
没有账号? 忘记密码?