1、堆栈进出
===> unshift() | | ===> pop()
| [1,2,3,4] |
<=== shift() | | <=== push()
| |
// 方法均改变原数组,若有弹出则返回弹出的值
若是添加则返回添加后的数组长度
2、join("分隔符") 将数组转换为字符串(不影响原数组的值)
var arry = [1,2,3,4];
arry.join() // ===> "1,2,3,4" // 默认分隔符为 ','
3、reserve() 将数组元素逆向排序( 影响原来的数组 )
arry.reverse();
arry // ===>均返回 [4,3,2,1]
4、sort() 将数组升序排序 ( 影响原来的数组 默认字母表顺序排序 )
arry.sort();
arry // ===> 均返回[1,2,3,4]
sort(function( a, b ){
return a - b
})
5、concat() 拼接数组( 返回新数组,不用影响原来数组 )
[1,2].concat(3,4) // ===> [1,2,3,4]
[1,2].concat([3,4]) // ===> [1,2,3,4]
[1,2].concat([3,[4,5]],6) // ===> [1,2,3,[4,5],6]
6、slice(startIndex, endIndex) 返回截取数组的片段 (不用影响原来数组)
// 返回数组 [startIndex,endIndex)
arry.slice(0,1) // ===> [1]
arry // ===> [1, 2, 3, 4]
7、splice(开始删除元素的索引(删除包含该值),删除个数,此处开始是要插入的元素)(影响原来的数组)
// 插入或删除数组元素 (影响原来的数组 并返回删除的元素数组)
arry = [1,2,3,4];
arry.splice(2,2) // ===> [3, 4]
arry // ===> [1, 2]
arry.splice(2,0,3,4,5) // ===> []
arry // ===> [1, 2, 3, 4, 5]
8、 toString() 将数组转换为字符串
var ary2 = [1,2,[3,4]];
ary2.toString() // ===> "1,2,3,4" 等效于 join()
9、forEach( ) 遍历循环 传参为函数
forEach(function( 数组元素,元素索引,当前数组 ){
// 函数主体
})
var data = [1,2,3];
data.forEach(function( v, i, a){
a[i] = v + 1;
})
// data ===> [2,3,4]
10、map() 循环遍历 传参为函数
// map必须有一个返回值 所有的返回值组成一个新数组
map(function(数组元素,元素引号,当前数组){
return xxxx;
})
var data = [1,2,3];
var mapData = data.map(function( v, i, a){
a[i] = v + 10;
return i*i
})
// data ===> [11, 12, 13]
// mapData ===> [0, 1, 4]
11、 filter() 过滤函数 传参为一个判断函数,若为true则返回
var a = [1,2,3,4,5];
var b = a.filter(function(x){
return x > 3;
})
// b ===> [4,5]
// a ===> [1,2,3,4,5]
12、every() 和 some() 传参为函数 逻辑判断方法 返回true或false
// every : 当所有元素满足 传参函数 返回值为true时 every返回true
// some : 当存在一个返回值为true时,即返回true
var a = [1,2,3,4,5];
var b = a.every(function(x){
return x > 3;
})
var c = a.some(function(x){
return x > 3;
})
// b ===> false
// c ===> true
13 、 reduce() 和 reduceRight() 数组元素组合 生成单值 【例 6-2】
// reduce() 传参为函数,[起始值]
// reduceRight() 数组执行函数 从右至左
// 例子中 x为 函数上次的反参
var a = [1,2,3,4];
var sum = a.reduce(function(x, y){
return x + y;
})
//===> 10
var a = [1,2,3,4];
var sum = a.reduce(function(x, y){
return x + y;
}, 10)
// ===> 20
14、 indexOf() 和 lastIndexOf() 检索数组是否包含指定值
// 传参为 数组是否包含的值,[ 开始检索的数组索引 默认从头开始 ]
// lastIndexOf() 为反向检索
// 若存在 返回索引值;否则返回 -1
var a = [3,5,7];
a.indexOf(5); // ===> 1
a.indexOf(6); // ===> -1