学习javascript的时候,无论是页面特效或者编写业务逻辑的时候,很多时候我们都要和数组打交道,这里的话我们掌握的数组对象的方法就是我们的基本功,掌握的越牢固,基本功就越扎实,工作起来也就更加遇到这一方面的问题也就更加的得心应手!
话不多说,开始来一遍数组的操作先(根据w3c手册)
在W3C中,我们见到总共有14个操作方法大体如下:
1.concat(); 连接两个或者更多的数组,并返回结果
2.join(); 把数组的所有元素放入一个字符串中,元素通过指定的分隔符进行隔离;
3.pop(); 删除并返回数组的最后一个元素
4.push(); 向数组的末尾添加一个或更多的元素,并返回新的长度
5.reverse(); 颠倒数组中元素的顺序
6.shift(); 数组的第一个元素从其中删除,并返回第一个元素的值
7.slice(); 从某个已有的数组返回选定的元素
8.sort(); 对数组的元素进行排序
9.splice(); 删除元素,并向数组添加新元素。
**10.toSource(); 返回该对象的源码 (仅火狐支持)
11.toString(); 把数组转换成字符串并返回结果
12.toLocaleString(); 把数组返回成本地数组,并返回结果
13.unshift(); 向数组的开头添加一个或者更多的元素,并返回新的长度
14.valueOf(); 返回数组对象的原始值
1.concat()
let arr1 = [1,2,3];
let arr2 = ['a','b','c'];
console.log(arr1.concat(arr2)) [1,2,3,'a','b','c']
console.log(arr1) [1,2,3]
注意: 可以看出,concat这个方法就是简单拼接了数组,并没有改变原始数组
concat也可以使数组和字符串进行拼接
let arr1 = [1,2,3]
console.log(arr1.concat(4,5)) //1,2,3,4,5
如果是拼接多个数组
let arr1 = [```];
let arr2 = [```];
let arr3 = [```];
console.log(arr1.concat(arr2,arr3))
2.join() **把数组的所有元素放入一个字符串中,元素通过指定的分隔符进行隔离;
let arr = ['zheng','song','jun'];
console.log(arr.join()) //zheng,song,jun
console.log(arr.join('+')) //zheng+song+jun
3.pop() **删除并返回数组的最后一个元素
let arr = ['zheng','song','jun'];
console.log(arr.pop()); //jun
console.log(arr) //['zheng','song']
4.push() **向数组的末尾添加一个或更多的元素,并返回新的长度和新的数组
let arr = ['zheng','song','jun']; arr.push('呵呵'); console.log(arr,arr.length); //['zhegn','song','jun'] 4
5.reverse() **颠倒数组中元素的顺序
let arr = ['zheng','song','jun'];
arr.reverse();
console.log(arr) //["jun", "song", "zheng"]
6.shift() **把数组的第一个元素从其中删除,并返回第一个元素的值。
let arr = ['zheng','song','jun'];
let first = arr.shift();
console.log(first); //zheng
console.log(arr) //['song','jun']
7.slice() **从某个已有的数组返回选定的元素;
使用方法Array.slice(start,end)
start:必需,规定从何处开始选值,如果是负数,就从尾部开始计算,-1是最后一个元素,-2是倒数第二个元素
end:可选,规定从何处结束选值,该参数是数组片段结束时的下标,如果没有参数,那么切分的是数组包含从start到数组结束的所有元素。如果这个参数是负数,那么它规定的从数组尾部开始算起的元素和start一样
let arr = ['zheng','song','jun','one','two','three'];
arr.slice(0,3);
console.log(arr.slice(-1)); //["three"]
console.log(arr.slice(0,3)); //["zheng", "song", "jun"]
console.log(arr.slice(0,-1)); //["zheng", "song", "jun", "one", "two"]
8.sort(); **对数组的元素进行排序,并返回一个新的组数
let arr = ['a','f','c','r','p','z'];
console.log(arr.sort()) // ["a", "c", "f", "p", "r", "z"]
如果对数字进行排序也一样
let arr = ['1','12','22','2','32','85','6','45'];
console.log(arr.sort()) // ["1", "12", "2", "22", "32", "45", "6", "85"]
console.log(arr) // ["1", "12", "2", "22", "32", "45", "6", "85"]
注意:可以看出来排序的话他是按照首字母的大小进行排序的,并不是按照数字大小进行排序,如果需要按照大小排序,需要加入参数
let arr = ['1','12','22','2','32','85','6','45']; console.log(arr.sort(sortNumber)) //["1", "2", "6", "12", "22", "32", "45", "85"] function sortNumber(a,b){ return a - b }
也可以把sortNumber函数中的return 改成 return b-a;那么结果就是按降序排列
9.splice() **删除元素,并向数组添加新元素
注意:改方法会改变数组
这个方法是数组里面最强大一个方法,可以达到删除,插入,替换的效果
走一波代码把,介绍太详细容易懵
11.toString() **把数组转换成字符串并返回结果
let arr = ['zheng','song','jun'];
console.log(arr.toString()); //zheng,song,jun
console.log(arr) //["zheng", "song", "jun"]