一、基本概念
1.javascript中没有线性存储结构,数组只是类数组存储形式,实质上还是对象,只是对象的索引key为0到无穷的数值
2.数组字面量:[]定义的表达式
3.长度:length属性是数组最大属性值加1。javascript数组无越界现象,如果用大于等于length的值标明存储内容,则数组会扩大以存储相应内容
4.判断是否为数组
Array.prototype.is_array = function(value){
return Object.prototype.toString.apply(value) === '[object Array]';
}
二、方法
1.增加删除元素(逐个)
删除(返回删除的元素):array.pop() ,array.shift()
增加(返回数组长度):array.push(val),array.unshift(val)
2.删除连续元素/替换元素
返回被删除/替代的元素:array.splice(start,lenght,item1,....)
start:开始下标
length:操作数组长度
item1:可选,如果有则表示替换从开始下标位置的元素
3.复制数组
返回副本:array.concat()
返回指定连续元素:array.slice(start,end) 从start到end-1,注:返回元素不包含第end项,默认值为length
4.排序sort
默认比较函数把要排序的元素都视为字符串,得出的结果错误。
自定义比较函数接受两个参数,如果两个参数相等则返回0,如果第一个参数排在前则返回负数,如果第二个参数排在前则返回正数
如:简单数值排序:
array.sort(function(a,b){return a-b}) //从小到大
如:包含简单数值(数字、字符串)的数组排序
array.sort(function(a,b){
if(a ===b) return 0;
if(typeof a === typeof b){ return a < b ? -1 : 1}
return typeof a < typeof b ? -1 : 1
})
5.反转reverse:反转数组并返回数组本身
三、总结
根据作用、参数、返回值、是否改变原始数组等几方面总结数组操作方法
网友评论