测试数组arr = [2,0,1,6];
下面各个方法对arr的测试互不影响。
shift()
删除并返回数组的第一个元素。
console.log(arr.shift()); //2
console.log(arr); //[1,0,6]
pop()
删除并返回数组的最后一个元素。
console.log(arr.pop()); //6
console.log(arr); //[2,0,1]
unshift(arg1,arg2,…)
向数组的开头添加一个或更多元素,并返回新的长度。
直接修改原有的数组,下标0处插入需要添加的值,已经存在的元素顺次地移到较高的下标处
console.log(arr.unshift(9,3,4)); //7
console.log(arr); //[9,5,4,2,0,1,6]
push(arg1,arg2,…)
向数组的末尾添加一个或多个元素,并返回新的长度。
直接修改数组
console.log(arr.push(9,5,4)); //7
console.log(arr); //[2,0,1,6,9,5,4]
concat(arr1,arr2,…)
连接两个或多个数组。
返回被连接数组的一个副本,原数组不变
var c = [2,0];
var d = [1,5]
console.log(arr.concat(c, d)); //[2,0,1,6,2,0,1,5]
console.log(arr); //[2,0,1,6]
join(str)
返回由str把数组元素连接成的一个字符串
console.log(arr.join('')); //2016
console.log(arr); //[2,0,1,6]
//省略参数
console.log(arr.join()); //2,0,1,6
reverse()
颠倒数组中元素的顺序,数组结构改变,返回数组
console.log(arr.reverse()); //[6,1,0,2]
console.log(arr); //[6,1,0,2]
slice(start,end【不包括该元素】)
返回一个由start,end选择的数组
负值表示从尾部选取元素
console.log(arr.slice(1)); //[0,1,6]
console.log(arr); //[2,0,1,6]
console.log(arr.slice(0)); //[2,0,1,6]
console.log(arr.slice(-4)); //[2,0,1,6]
console.log(arr.slice(1,3)); //[0,1]
console.log(arr.slice(1,-1)); //[0,1]
console.log(arr.slice(-3,-1)); //[0,1]
console.log(arr.slice(-3,3)); //[0,1]
splice(index,deleteNum,arg1,arg2,…)
和这个方法可谓数组最全的方法,可以实现数组元素的,添加,修改,删除
index:操作(添加、删除)开始的位置,必选
delete:删除的数目,0表示不删除,必选
arg:添加的元素(一个或多个),可选(用于删除,修改)
返回值:删除操作返回删除元素组成的数组,其他操作返回空数组
//添加,向位置1添加数值1
console.log(arr.splice(1,0,1)); //[]
console.log(arr); //[2,1,0,1,6]
console.log(arr.splice(1,0,3,8)); //[]
console.log(arr); //[2,3,8,1,0,1,6]
//删除,从位置2开始删除2个数值
console.log(arr.splice(2,2)); //[8,1]
console.log(arr); //[2,3,0,1,6]
//修改,将位置1的数值改为9
console.log(arr.splice(1,1,9)); //[3]
console.log(arr); //[2,9,0,1,6]
valueOf()
w3c解释,我还不太理解
valueOf() 方法返回 Array 对象的原始值。该原始值由 Array 对象派生的所有对象继承。valueOf() 方法通常由 JavaScript 在后台自动调用,并不显式地出现在代码中。
console.log(arr.valueOf()); //[2,0,1,6]
console.log(arr); //[2,0,1,6]
toString()
把数组转换为字符串,并返回结果
console.log(arr.toString()); //2,0,1,6
console.log(typeof arr.toString()); //string
console.log(arr); //[2,0,1,6]
toLocaleString()
把数组转换为本地字符串。
console.log(arr.toLocaleString()); //2,0,1,6
console.log(arr); //[2,0,1,6]
//特定用法
var date = new Date();
console.log(date); //Thu Feb 04 2016 19:51:01 GMT+0800 (中国标准时间)
console.log(date.toLocaleString()); //2016/2/4 下午7:51:01
sort()
没有使用参数,将按字母顺序对数组中的元素进行排序
返回排序后的数组
var c = ['c','d','a'];
console.log(c.sort()); //['a','c','d']
console.log(c); //['a','c','d']
对于sort方法,上面我只进行了字符串排序,为什么不进行数字呢? 大家平时可能数字sort排序也用过,感觉可以的,可以是可以,那种sort排序有时候会出现问题,下面有好的方法,希望借鉴~
//升序排序
console.log(arr.sort(function(a, b){
return a - b;
}));
console.log(arr); //[0,1,2,6]
//降序排序
console.log(arr.sort(function(a, b){
return b - a;
}));
console.log(arr); //[6,2,1,0]