1.数组方法
1)join()把数组上午所有元素放入一个字符串。元素通过指定的分隔符进行分隔。
该方法只接收一个参数,用作分隔符的字符串,然后返回包含所有数组项的字符串,如果不给join()方法传入任何值,则使用逗号作为分隔符。
var a = [1,2,3]; console.log(a.join());//‘1,2,3‘ console.log(a.join(‘ ‘));//‘1 2 3‘ console.log(a.join(‘‘));//‘123‘ var b = new Array(10); b.join(‘-‘);//‘---------‘,9个连字符组成的字符串
注意:如果join()方法的参数是undefined,标准浏览器以逗号为分隔符返回字符串,而IE7-浏览器以"undefined"为分隔符返回字符串;
如果数组中某一项的值是null或者undefined,则该值在join()方法返回的结果中以空字符串表示。
2)push()方法可以接收任意数量的参数,把它们逐个添加到数组末尾,并且返回修改后数组的长度。
var a = []; console.log(a,a.push(1));//[1] 1 console.log(a,a.push(‘a‘));//[1,‘a‘] 2 console.log(a,a.push(true, {}));//[1,‘a‘,true,{}] 4 console.log(a,a.push([5,6]));//[1,‘a‘,true,{},[5,6]] 5
3)pop()方法从数组末尾移除最后一项,减少数组的length,然后返回移除的项。
var a = [‘a‘, ‘b‘, ‘c‘]; console.log(a,a.pop()); // [‘a‘, ‘b‘] ‘c‘
注意:给pop参数传其他数字不起作用,也不报错。还是只删除最后一项;
对空数组使用pop()方法,不会报错,而是返回undefined
4)shift()方法移除数组中的第一个项并返回该项,同时数组的长度减1
var a = [‘a‘, ‘b‘, ‘c‘]; console.log(a,a.shift());//[‘b‘, ‘c‘] ‘a‘ var arr6 = [1]; console.log(arr6,arr6.shift()); //[] 1
注意:对空数组使用shift()方法,不会报错,而是返回undefined
5)unshift()方法在数组前面添加任意个项并返回新数组长度。
var a = [‘a‘, ‘b‘, ‘c‘]; console.log(a,a.unshift(‘x‘)); //[‘x‘, ‘a‘, ‘b‘, ‘c‘] 4
注意:当传入多个参数时,是一次性插入。最终的数组中插入的元素的顺序和它们在参数列表中的 顺序一致;
在IE-7浏览器中,unshift()方法的返回值总是undefined
6)reserve()方法用于反转数组的顺序,返回经过排序之后的数组;而原来数组的顺序也发生改变。
var array = [1,2,4,3,5]; console.log(array,array.reverse());//[5,3,4,2,1] [5,3,4,2,1] var array = [‘str‘,true,3]; console.log(array,array.reverse());//[3,true,‘str‘] [3,true,‘str‘]
7)sort()按照字符编码的顺序进行排序。sort()方法会调用每个数组项的toString()方法,然后比较得到的字符串排序,返回经过排序之后的数组,而原数组顺序也发生改变。
var array = [2,1,4,3,5]; console.log(array,array.sort());//[1,2,3,4,5] [1,2,3,4,5] var array = [‘3str‘,3,2,‘2‘]; console.log(array,array.sort());//[2, "2", 3, "3str"] [2, "2", 3, "3str"]
注意:如果数组包含undefined元素,它们会被排到数组的尾部;
arrayObject.sort(sortby) 参数可选。规定排序顺序。必须是函数。比较函数接收两个参数,如果第一个参数应该位于第二个之前则返回一个负数,如果两个参数相等则返回 0,如果第一个参数应该位于第二个之后则返回一个正数。
2.数组降维
方法一:
function flattenDeep(arr) { arr = "" + arr; // 或者arr = arr.toString();
arr = arr.split(","); arr = arr.map(Number) return arr; } flattenDeep([1, [[2],[3, [4]], 5]]);
方法二:
function flattenDeep(arr) { if(!Array.isArray(arr)) return [arr]; return arr.reduce((prev,cur) => { return [...prev, ...flattenDeep(cur)]; },[]); } flattenDeep([1, [[2], [3, [4]], 5]]);
方法三:
function flattenDeep(arr){ while(arr.some(item=>Array.isArray(item)){ arr = [].concat(...arr); } return arr; }
https://blog.csdn.net/qq_35652217/article/details/78470118
https://blog.csdn.net/carpenterworm1874/article/details/79342037
原文:https://www.cnblogs.com/lhh520/p/10373802.html