数组的操作方法

shift

删除原数组的第一项,并返回删除元素的值,如果数组为空则返回undefined

unshift

将参数添加到原数组的开头,并返回数组的长度

pop

删除原数组最后一项,并返回删除元素的值,如果数组为空则返回undefined

push

将参数添加到原数组末尾,并返回数组的长度

concat()

可以将两个数组合并在一起,如果是使用ES6语法也可以用扩展运算符…来代替

splice

参数为(start,deleteCount,val1,val2…):从start位置开始删除deleteCount项,并从该位置起插入。原数组改变

1
2
3
4
var a = [1, 2, 3, 4, 5];
var b = a.splice(2, 2, 7, 8, 9);
console.log(a);//输出结果:[ 1, 2, 7, 8, 9, 5 ]
console.log(b);//输出结果:[ 3, 4 ]

reverse

将数组反序

sort

参数为(orderfunction),按指定的参数对数组进行排序。

  • 原地算法
  • 快排不属于原地算法

slice

参数为(start,end),可以截取出数组某部分的元素为一个新的数组,有两个必填的参数,第一个是起始位置,第二个是结束位置(操作时数组减1),原数组不改变

1
newArr = arr.slice(0, 5) // newArr [0,1,2,3,4]

join

参数为(separator),将数组的元素组起一个字符串,以separator为分隔符,省略的话则用逗号为分隔符

1
2
3
var a = [1, 2, 3, 4, 5];
var b = a.join('|');
console.log(b); //输出结果:'1|2|3|4|5'

Array和Object的特性

Array Object
新建 var arr=new Array();或var arr=[]; var obj = new Object();或var obj={};
增加 arr.push(value) obj[key]=value; (key为string)
删除 delete arr[n] delete obj[key]
遍历 for(var i=0;i<arr.length;i++){ arr[i]} for(var key in obj){ obj[key]}

map()

(1)功能:map作用使映射调用此方法的数组。按照原始数组元素顺序依次处理元素

(2)参数:(item,index,arr)

(3)返回值:不会改变原始数组,返回新数组,长度和原始数组一致

1
2
3
4
5
let a = [1, 2, 3, 4, 5, 6, 7, 8];
let b = a.map(e => {
    return e + 10;
});
console.log(b); //输出结果:[11,12,13,14,15,16,17,18]
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
Array.map((item, index, arr) => {
//item=>数组的每一项
//index=>数组每一项的索引
//arr=>原数组
})

//实例:
let arr = [1, 2, 3];
let newArr = arr.map((item, index, arr) => {
    return item + 1;
})
//newArr=[2,3,4]
Built with Hugo
主题 StackJimmy 设计