1. join()
-
Array.join()方法将数组中所有元素都转换为字符串并连接在一起,返回最后生成的字符串。
-
可以指定一个可选的字符串在生成的字符串中来分隔数组的各个元素。
-
如果不指定分隔符,默认使用逗号。
-
-
例如:
let arr = [1,2,3,4,5] // 创建一个包含5个元素的数组 console.log(arr.join()) console.log(arr.join(" ")) console.log(arr.join("")) console.log(arr.join("-"))
-
Array.join()方法是String.split()方法的逆向操作,后者是将字符串分割成若干块来创建一个数组
2. reverse()
-
Array.reverse()方法将数组中的元素颠倒顺序,返回逆序的数组。
-
它采取了替换,换句话说,它不通过重新排列的元素创建新的数组,而是在原先的数组中重新排列它们。
-
例:
let arr = [1,2,3,4,5] // 创建一个包含5个元素的数组 console.log(arr) console.log(arr.reverse())
3. sort()
-
Array.sort()方法将数组中的元素排序并返回排序后的数组。
-
当不带参数调用sort()时,数组元素以字母表顺序排列(如有必要将临时转换成字符串进行比较)
let arr = ["Mary","Jack","Join","Suan","Jim"] console.log(arr.join()) arr.sort() console.log(arr.join())
-
如果数组包含undefined元素,它们会被排到数组的尾部。
4. concat()
-
Array.concat()方法创建并返回一个新数组,它的元素包括调用concat()的原始数组的元素和concat()的每个参数。
-
如果这些参数中的任何一个自身是数组,则连接的是数组的元素,而非数组本身。
-
注意:
-
concat()不会传递扁平化数组(数组降维)的数组。
-
concat()也不会修改调用的数组。
-
-
例:
let arr = [1,2,3] console.log(arr) console.log(arr.concat(4,5)) console.log(arr) console.log(arr.concat([4,5])) console.log(arr.concat([4,5],[6,7])) console.log(arr.concat(4,[5,[6,7]]))
5. slice()
-
Array.slice()方法返回指定数组的一个片段或子数组。它的两个参数分别指定了片段的开始和结束的位置。
-
返回数组包含第一个参数指定的位置和所有到但不含第二个参数指定的位置之间的所有数组元素。
-
如果只指定一个参数,返回的数组将包含从开始位置到数组结尾的所有元素。
-
如果参数中出现了负数,它表示相对于数组中最后一个元素的位置。
-
例如:参数-1指定了最后一个元素,而参数-3指定了倒数第三个元素。
-
-
注意,slice()不会修改调用的数组
-
例:
let arr = [1,2,3,4,5,6] console.log(arr.slice(0,3)) console.log(arr.slice(3,5)) console.log(arr.slice(4)) console.log(arr.slice(3,-1)) console.log(arr.slice(-3,-2)) console.log(arr)
6. splice()
Array.splice()方法是在数组中插入或删除元素的通用方法。不同于slice()和concat(),splice()会修改调用的数组。注意,splice()和slice()拥有非常相似的名字,但是它们的功能却有本质的区别。
-
splice()能够从数组中删除元素、插入元素到数组中或者同时完成这两种操作。在插入或删除之后的数组元素会根据需要增加或减小它们的索引值,因此数组的其他部分仍然保持连续。
-
splice()的第一个参数指定了插入(或)删除的起始位置。
-
第二个参数指定了应该从数组中删除的元素的个数。
-
如果省略第二个参数,从起始开始到数据结尾的所有元素都将被删除。
-
splice()返回一个由删除元素组成的数组,或者如果没有删除元素就返回一个空数组
-
-
例:
let arr = [1,2,3,4,5,6,7,8,9,10] console.log(arr.splice(4)) console.log(arr) console.log(arr.splice(1,2)) console.log(arr)
-
splice()的前两个参数指定了需要删除的数组元素。紧跟其后的任意个数的参数指定了需要插入到数组中的元素,从第一个元素指定的位置开始插入。
-
例:
let arr = [1,2,3,4] console.log(arr) arr.splice(2,0,'a',true) console.log(arr) arr.splice(2,2,[1,2],3) console.log(arr)
-
注意:
-
区别于concat(),splice()会插入数组本身而非数组的元素
-
7. push()和pop()
-
push()和pop()方法允许将数组当作栈来使用。
-
push()方法,在数组的尾部添加一个或多个元素,并返回数组新的长度。
-
pop()方法,则相反它删除数组的最后一个元素,减小数组长度并返回它删除的值。
-
注意
-
两个方法都修改并替换原始数组而并非生成一个修改版的新数组。组合使用push()和pop()能够用JavaScript数组实现先进后出的栈。
-
let stack = [] console.log(stack.push(1,2)) console.log(stack.pop()) console.log(stack.push(3)) console.log(stack.pop()) console.log(stack.push([4,5])) console.log(stack.pop()) console.log(stack.pop())
8. unshift()和shift()
-
unshift()和shift()方法的行为非常类似于push()和pop(),不一样的是前者是在数组的头部而非尾部进行元素的插入和删除操作。
-
unshift()在数组的头部添加一个或多个元素,并将已存在的元素移动到更高索引的位置来获得足够的空间,最后返回数组新的长度。
-
shift()删除数组的第一个元素并将其返回,然后把所有随后的元素下移一个位置来填补数组头部的空缺。
-
例
let arr = [] // [] arr.unshift(1) // [1] 返回 1 arr.unshift(22) // [22,1] 返回 2 console.log(arr) arr.shift() // [1] 返回 22 console.log(arr) arr.unshift(3,[4,5]) //[3,[4,5],1] 返回 3 console.log(arr) arr.shift() // [[4,5],1] 返回 [4,5] console.log(arr) arr.shift() // [1] 返回 1 console.log(arr)
-
注意:
-
当使用多个参数调用unshift()时它的行为令人惊讶。参数时一次性插入的(就像splice()方法)而非一次一个地插入。这意味着最终数组中插入的元素的顺序和它们参数列表中的顺序一致。而假如元素是一次一个地插入,它们的顺序应该是反过来的。
-
9. toString()和toLocaleString()
-
数组和其他JavaScript对象一样拥有toString()方法。
-
针对数组,该方法将其每个元素转换为字符串(如有必要将调用元素的toString()方法)并且输出用逗号分隔的字符串列表。
-
注意:输出不包括方括号或其他任何形式的包裹数组值的分隔符。
-
例子:
const arr = [1, 2, 'a', '1a']; console.log(arr.toString());
-
注意:
-
这里与不使用任何参数调用join()方法返回的字符串是一样的。
-
-
toLocaleString()是toString()方法的本地化版本。它调用元素的toLocaleString()方法将每个数组元素转化为字符串,并且使用本地化(和自定义实现的)分隔符将这些字符串连接起来生成最终的字符串。