/*
1、数组.push(数据)。
将数据追加到数组的末尾。
返回值是追加数据后数组最新的长度。
原数组改变。
2、数组.pop()。
删除数组最后一个数据。
返回值是被删除的数据。
原数组改变。
3、数组.unshift(数据)。
将数据添加到数组的最前面。
返回值是追加数据后数组最新的长度。
原数组改变。
4、数组.shift()。
删除数组最前一个数据。
返回值是被删除的数据。
原数组改变。
5、数组.reverse()。
将数组反转。
返回值是反转后的数组。
原数组改变。
6、数组.splice(开始索引[默认为0], 删除多少个[默认为0], 要插入的数据[默认为无])。
删除数组中的若干数据,并选择是否插入新的数据。
以新数组的形式返回被删除的数据。
原数组改变。
eg:
var arr = [100, 200, 300, 400];
// 从索引1开始,删除2个数据,再插入数据500, 600, 700。
var res = arr.splice(1, 2, 500, 600, 700)
console.log(arr);
console.log(res);
结果为:
arr: [100, 500, 600, 700, 400]
res: [200, 300]
7、数组.sort() / 数组.sort(function (a, b) {return a - b;})。
对数组进行排序。
返回值是排序好的数组。
第一个无参方法排序是按照位进行排序,即先按第一位(十位)排序,第一位相同时按照第二位(个位)排序,以此类推。如下所示。
eg:[11, 1, 22, 13, 45, 32, 2] -排序后-> [1, 11, 13, 2, 22, 32, 45]
第二个有参方法排序方式由参数决定,上述参数是按照升序排序。若将参数中的"a - b;"换成"b - a;",则为降序排序。
原数组改变。
8、数组.join(连接符)。
将数组使用连接符连接成为一个字符串。
返回值是连接好的字符串。
原数组不变。
9、数组.concat(其他数组)。
将其他数组和原数组拼接在一起。即两个数组合并。
返回值是拼接好的数组。
原数组不变。
10、数组.slice(开始索引[默认为0], 结束索引[默认为数组长度])。
截取数组中的某些数据(截取数据包括开始索引,但不包括结束索引)。
以新数组的形式返回截取出来的数据。
原数组不变。
11、数组.indexOf(数据)。
查找数据在数组中的索引位置。
若有该数据,返回第一次出现的索引位置。若没有该数据,返回-1。
原数组不变。
12、数组.forEach(function (item, index, arr) {})。
遍历数组。
返回值无。
forEach(...)中的函数会根据数组的长度来执行。数组有多少个数据,该函数便会执行多少回。
函数形参中,item表示每一项;index表示数组的索引;arr就是原始数组。
参数名随意取。参数个数不固定,但是顺序是固定的,即第一个参数是每一项,第二个参数是索引,第三个参数是原数组。
只写两个参数时,依次表示每一项、索引,原数组没有。其他个数参数以此类推。
原数组不变。
eg:
var arr = [100, 200, 300, 400];
arr.forEach( function (item, index, arr) {
console.log(item);
console.log(index);
console.log(arr);
});
结果为:
100
0
[100, 200, 300, 400]
200
1
[100, 200, 300, 400]
300
2
[100, 200, 300, 400]
400
3
[100, 200, 300, 400]
13、数组.map(function (item, index, arr) {})。
映射数组。
返回值是映射后的新数组。
map(...)中的函数参数功能与上述forEach(...)中的函数一致。区别是map(...)中的函数以return的方式书写映射条件。
原数组不变。
eg:
var arr = [100, 200, 300, 400];
var res = arr.map( function (item, index, arr) {
// 此处条件是把原始数组中的(每一项 / 每一索引)扩大十倍。然后函数会以数组的形式返回。
return item*10 / index*10;
});
console.log(res);
结果为:
[1000, 2000, 3000, 4000] / [0, 10, 20, 30]
14、数组.filter(function (item, index, arr) {})。
过滤数组。
返回值是过滤后的新数组。
filter(...)中的函数参数功能与上述forEach(...)中的函数一致。区别是filter(...)中的函数以return的方式书写过滤条件。
原数组不变。
eg:
var arr = [100, 200, 300, 400];
var res = arr.filter( function (item, index, arr) {
// 此处过滤条件是过滤出大于200的项。然后函数会以数组的形式返回。
return item > 200;
});
console.log(res);
结果为:
[300, 400]
上述将filter方法名改为map,结果为:[flase, flase, true, true]
15、数组.every(function (item, index, arr) {})。
判断数组是不是每一项都满足条件。
返回值是一个布尔值。
every(...)中的函数参数功能与上述forEach(...)中的函数一致。区别是every(...)中的函数以return的方式书写条件。
原数组不变。
eg:
var arr = [100, 200, 300, 400];
var res = arr.every( function (item, index, arr) {
// 此处条件是判断数组中的每一项是否都大于200。
return item > 200;
});
console.log(res);
结果为:
false
16、数组.some(function (item, index, arr) {})。
判断数组中是不是有某一项满足条件。
返回值是一个布尔值。
some(...)中的函数参数功能与上述forEach(...)中的函数一致。区别是some(...)中的函数以return的方式书写条件。
原数组不变。
eg:
var arr = [100, 200, 300, 400];
var res = arr.some( function (item, index, arr) {
// 此处条件是判断数组中是否存在大于200的数据。
return item > 200;
});
console.log(res);
结果为:
true
*/