@hotjp
2017-01-24T15:04:10.000000Z
字数 1618
阅读 1218
培训
数组拼接字符串
Array.join([','])
已有数组返回选定的一个元素
Array.slice(start[,end]) //不影响原数组
删除元素,并向数组添加新元素
可以删除index后的N个元素(可为0),并追加任意元素。
即可以根据索引删除或添加数组元素
Array.splice(index,N[,item1,.....,itemX]) //改变原数组
连接(拼接)数组
Array.concat(Array1[,Array2,ArrayN]) //不改变原数组
快速复制数组(hack)
Array.concat()
排序数组(改变原数组)
Array.sort([sortby]) // sortby:排序方式,默认字母顺序排序a-z、0-9
排序数字数组
Array.sort(function(a,b){return a - b}) //小到大
Array.sort(function(a,b){return b - a}) //大到小
逆转数组顺序
Array.reverse() //改变原数组并返回数组
数组追加元素
Array.push(1[,2,3]) //改变原数组并返回length
删除数组最后一个元素
Array.pop() //改变原数组并返回最后一个元素
[1,2,3,4,5].pop() //return 5
删除数组第一个元素
Array.shift() //改变原数组并返回第一个元素
数组开头添加元素
Array.unshift(1[,2,3]) //改变原数组并返回length
数组转为字符串
Array.toString() //返回去左右中括号结果,对象变成'[object Object]'
indexOf
Array.prototype.indexOf = Array.prototype.indexOf || function(item) {//扩展数组原型
for (var i = 0, j = this.length; i < j; i++) {
if (this[i] === item) {
return i;
}
}
return -1;
}
//[1,2,3,4,5].indexOf("1")
//return 0
//[1,2,3,4,5].indexOf("6")
//return -1
数组去重(打乱顺序,按字母排序找出重复,在原数组删除)
Array.prototype.distinct = function(){ //扩展数组原型链
var self = this;
var _a = this.concat().sort();
_a.sort(function(a,b){
if(a == b){
var n = self.indexOf(a);
self.splice(n,1);
}
});
return self;
};
判断是否数组
value 是数组返回 true 不是返回false,伪数组不会通过检测
value instanceof Array;
清空数组
清空数组不能使用 delete
关键字,应
var arr = [0,1,2,3,4];
arr.length = 0;
console.log(arr);
没有数组的push、shift、pop等方法;
function的arguments对象,还有getElementsByTagName、childNodes等返回的NodeList对象,或者自定义的某些对象(sizzle.js)
function make(){return arguments;}
var fakeArr = make(1,2,3,4,5)
var arr = [1,2,3,4,5]
fakeArr.push("6")
arr.push("6")
Array.prototype.slice.call({
0:"likeke",
1:12,
2:true,
length:3
});
//["likeke", 12, true]