@hotjp
2017-01-24T07:04:10.000000Z
字数 1618
阅读 1399
培训
数组拼接字符串
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]