JavaScript中数组Array方法详解

var arr = ['ba', 'b', 'ac'];

console.log(arr.sort()); // ['ac', 'b', 'ba']

console.log(arr); // ['ac', 'b', 'ba']

7、Array.push()和Array.pop()方法

   
Array.sort()方法将数组中的成分排序并回到排序后的数组。当不带参数调用sort()方法时,数组成分以字母表顺序排序。注意:此方法会改变原始数组。

2、Array.reverse()方法

专注,当使用多少个参数调用unshift()时,假使参数是1遍性插入的而非三回1个地插入,那象征最终的数组中插入的因素的顺序和它们在参数列表中的顺序一致。而只要成分是3回叁个地插入,它们的逐一应该是扭曲的。

9、Array.toString()和Array.toLocaleString()方法

var arr = [1, 2, 3];

console.log(arr.toString()); // 1,2,3

console.log(typeof(arr.toString())) // string

console.log(arr); // [1, 2, 3]
var arr = ['a', 'b', 'c'];

console.log(arr.join()); // a,b,c

console.log(arr.join(" ")); // a b c

console.log(arr.join("")); // abc

console.log(arr.join("slf")); // aslfbslfc

var arr2 = new Array(10);

console.log(arr2.join("-")); // ---------

    假如数组包含undefined成分,它们会被排到数组的底部。

   
越多关于sort()方法的用法可点击查阅JavaScript中数组Array.sort()排序方法详解

1、Array.join()方法

var arr = new Array(4);

arr[0] = 'ba';
arr[1] = 'b';
arr[2] = 'zc';
arr[3] = undefined;

console.log(arr.sort()); // ['ac', 'b', 'ba', undefined]

console.log(arr); // ['ac', 'b', 'ba', undefined]
var arr = ['a', 'b', 'c'];

console.log(arr.reverse()); // ['c', 'b', 'a']

console.log(arr); // ['c', 'b', 'a']

   
Array.slice()方法重回钦命数组的1个局地或子数组。它的四个参数分别钦点了一些的始发和了结的职位。重临的数组包括第一个参数内定的地方和具备到第1个参数钦命的岗位(但不含第①个参数钦赐的职分)之间的全部数组成分。假若只钦命四个参数,重临的数组将蕴含从初叶地方到数组结尾的保有因素。如参数中冒出负数,它代表相对于数组中最终1个因素的任务。例如,参数-1点名了最终四个要素,而-3钦命了倒数首个成分。注意,此办法不会修改原始数组。

   
数组和其他JavaScript对象一样具有toString()方法。针对数组,该措施将数组的每一种成分都转载为字符串并且输出用逗号分隔的字符串列表。注意:此办法不会修改原始数组(那与不使用其它参数调用join()方法再次回到的字符串是平等的)

  增添:Array.join()方法是String.split()方法的逆向操作,后者是将字符串分割成几何块来创制贰个数组。

   
假若想规行矩步别的措施而非字母表顺序进行数组排序,则必须给sort()方法传递3个相比函数。该函数决定了它的多个参数在排好序的数组中的先后顺序。假如第①个参数在前,相比较函数应该回到2个小于0的数值。反之,假诺第①个参数在后,函数应该回到二个大于0的数值。并且,若是多个值相当(它们的逐一无关首要),函数应该重临0。例如,用数值大小而非字母表顺序进行数组排序,代码如下:

var arr = [6, 2, 3, 4, 5, 6];

console.log(arr.unshift('a', 'b', 'c')); // 9

console.log(arr); // ['a', 'b', 'c', 6, 2, 3, 4, 5, 6]

console.log(arr.unshift(1)); // 10

console.log(arr); // [1, 'a', 'b', 'c', 6, 2, 3, 4, 5, 6]

console.log(arr.unshift(2)); // 11

console.log(arr); // [2, 1, 'a', 'b', 'c', 6, 2, 3, 4, 5, 6]

   
扩大:toLocaleString()是toString()方法的本地化版本。它调用成分的toLocaleString()方法将每一个数组成分转化为字符串,并且选拔本地化分隔符将这几个字符串连接起来生成最后的字符串。

    ECMAScript
3在Array.prototype中定义了有的很有用的操作数组的函数,这代表那个函数作为别的数组的办法都是可用的。

var arr = [6, 2, 3, 4, 5, 6];

console.log(arr.shift()); // 6

console.log(arr); // [2, 3, 4, 5, 6]

console.log(arr.unshift(['a', 'b'])); // 6

console.log(arr); // [['a', 'b'], 2, 3, 4, 5, 6]

console.log(arr.unshift('a', 'b')); // 8

console.log(arr); // ['a', 'b', ['a', 'b'] 2, 3, 4, 5, 6]

   
Array.reverse()方法将数组中的成分颠倒顺序,再次来到逆序的数组。它应用了交替;换句话说,它不经过重新排列的成分成立新的数组,而是在本来的数组中重新排列它们。注意:此方法会改变原始数组。

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

console.log(arr.splice(7)); // [8, 9]

console.log(arr); // [1, 2, 3, 4, 5, 6, 7]

console.log(arr.splice(2, 4)); // [3, 4, 5, 6]

console.log(arr); // [1, 2, 7]

console.log(arr.splice(2, 1, 3, 4, 5, 6)); // [7]

console.log(arr); // [1, 2, 3, 4, 5, 6]

console.log(arr.splice(3, 2, 3, [1, 2, 3])); // [4, 5]

console.log(arr); // [1, 2, 3, [1, 2, 3], 6]

5、Array.slice()方法

   
unshift()和shift()方法的行为特别相近于push()和pop()方法,差别的是:前者是在数组的头顶举办成分的插入和删除操作。unshift()在数组的尾部添加三个或四个要素,并将已存在的要素移动到更高索引的职务来博取丰硕的上空,最终回来数组新的长度。shift()删除数组的率先个要素并回到所删除的成分,然后把具有随后的因素向前挪动1个职位来填补数组底部的空缺。注意:这八个格局都会修改原始数组。

   
Array.splice()方法是在数组中插入或删除成分的通用方法。注意,splice()和slice()拥有非凡相似的名字,但它们的职能却有精神的分裂。splice()能够从数组中删除元素、插入成分到数组中要么同时做到那二种操作。在插入或删除点之后的数组成分会依据须要充实或减少它们的索引值,因而数组的别的部分依旧保持连续的。splice()的首先个参数钦定了插入和(或)删除的发端地方。第③个参数钦点了应当从数组中除去的因素的个数。假若不难第四个参数,从开始点早先到数组结尾的有所因素都将被删除。splice()重返3个由删除元素结合的数组,大概只要没有去除成分就回到2个空数组。注意:此方法会改变原始数组。(差距于concat(),
splice()会插入数组本身而非数组的元素。)

var arr = new Array(4);

arr[0] = 45;
arr[1] = 12;
arr[2] = 103;
arr[3] = 24;

console.log(arr.sort()); // [103, 12, 24 45]

console.log(arr.sort(function(a, b){return b-a;})); // [103, 45, 24, 12]

   
Array.concat()方法创设并回到四个新数组,它的因素包含调用concat()的原始数组的要素和concat()的各样参数。如果那一个参数中的任何1个自个儿是数组,则总是的是数组的因素,而非数组本身。但要注意,concat()不会递归扁平化数组的数组。注意:此办法
不会修改原始数组。

   
Array.join()方法将数组中颇具因素都转载为字符串并连接在共同,再次来到最后生成的字符串。能够钦赐二个可选的号子或字符串在转移的字符串中来分隔数组的次第要素。假若不钦赐分隔符,默许使用逗号。注意:此措施不会变动原始数组

var arr = ['abc', 'Def', 'BoC', 'FED', 'slf'];

console.log(arr.slice(1, 2)); // ["Def"]

console.log(arr.slice(3)); // ["FED", 'slf']

console.log(arr.slice(0, -1)); // ['abc', 'Def', 'BoC', 'FED']

console.log(arr.slice(-3, -1)); // ['BoC', 'FED']

console.log(arr); // ['abc', 'Def', 'BoC', 'FED', 'slf']

8、Array.unshift()和Array.shift()方法

   
push()和pop()方法允许将数组当做栈来使用。push()方法在数组的底部添加二个或四个因素,并赶回数组新的尺寸。pop()方法则相反:它删除数组的最后2个因素,减小数经理度并重回它删除的值。注意:那八个法子都会修改原始数组。

var arr = ['abc', 'Def', 'BoC', 'FED'];

console.log(arr.concat(1, 2)); // ["abc", "Def", "BoC", "FED", 1, 2]

console.log(arr.concat(1, 2, [4, 5])); // ["abc", "Def", "BoC", "FED", 1, 2, 4, 5]

console.log(arr.concat(1, 2, [4, ['slf', 5]])); // ["abc", "Def", "BoC", "FED", 1, 2, 4, Array[2]]

console.log(arr); // ["abc", "Def", "BoC", "FED"]

4、Array.concat()方法

6、Array.splice()方法

3、Array.sort()方法

   
总括:以上介绍的Array数组方法中,共拾三个方法,这一个点子都以在ECMAScript
3中定义的。在那之中,Array.join()方法、Array.concat()方法、Array.slice()方法、Array.toString方法以及Array.toLocaleString()方法,都不会改变原始数组。其余7中数组方法执行时,都会对原始数实行变更。

var arr = [1, 2, 3];

console.log(arr.push(7)); // 4

console.log(arr); // [1, 2, 3, 7]

console.log(arr.push([2, 4])); // 5

console.log(arr); // [1, 2, 3, 7, [2, 4]]

console.log(arr.pop()); // [2, 4]

console.log(arr); // [1, 2, 3, 7]