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])

JavaScript 数组操作全解

文章图片
二、查找和修改元素上面已经说过可以通过索引在找到元素,反过来也可以通过索引来改变元素。
例如:
console.log(arr[2]) arr[2] = 3; console.log(arr)

JavaScript 数组操作全解

文章图片
另外还可以用过索引来改变数组的长度。
例如:
var arr1 = ['a','b','c','d']; console.log(arr1.length) arr1[5] = 'e'; console.log(arr1) console.log(arr1.length)

JavaScript 数组操作全解

文章图片
三、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)

JavaScript 数组操作全解

文章图片
【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)

JavaScript 数组操作全解

文章图片
【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))); //stringconsole.log(arr.join('-')); //1-3-4-2-8-6-7 console.log(typeof(arr.join('-'))); //string

八、多维数组多维数组比较好理解,就是数组的某个或者多个元素是一个数组,数组中的数组,就是多维数组。
方法都是一样的,把数组里面的数组当作整体来处理就是简单了很多。访问多维数组中的元素一样也是通过索引。
【JavaScript 数组操作全解】例如:
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

    推荐阅读