数组本身api
var arr = [1 , 2 , 3 , 4 , 5 ];
var out = arr.shift();
console.log(arr);
console.log(out );
var arr = [];
var out = arr.shift();
console.log(arr);
console.log(out );
var arr = [1 , 2 ];
var out = arr.unshift(-1 , 0 );
console.log(arr);
console.log(out );
var arr = [1 , 2 , 3 , 4 , 5 ];
var out = arr.pop();
console.log(arr);
console.log(out );
var arr = [];
var out = arr.pop();
console.log(arr);
console.log(out );
var arr = [1 , 2 , 3 ];
var out = arr.push(4 , 5 , 6 );
console.log(arr);
console.log(out );
var arr = [1 , 2 , 3 ];
var out = arr.concat(4 , 5 );
console.log(arr);
console.log(out );
var arr = [1 , 2 , 3 , 4 , 5 ];
var out = arr.splice(2 , 2 , 7 , 8 , 9 , 10 );
console.log(arr);
console.log(out );
var arr = [1 , 2 , 3 , 4 , 5 ];
var out = arr.splice(2 );
console.log(arr);
console.log(out );
var arr = [1 , 2 , 3 , 4 , 5 ];
var out = arr.splice(0 , 1 );
console.log(arr);
console.log(out );
var arr = [1 , 2 , 3 , 4 , 5 ];
var out = arr.splice(0 , 0 , 22 , -1 , 0 );
console.log(arr);
console.log(out );
var arr = [1 , 2 , 3 , 4 , 5 ];
var out = arr.splice(arr.length - 1 , 1 );
console.log(arr);
console.log(out );
var arr = [1 , 2 , 3 , 4 , 5 ];
var out = arr.splice(arr.length, 0 , 6 , 7 , 8 );
console.log(arr);
console.log(out );
var arr = ['a' , 1 , {}, [2 , 3 ]];
console.log(arr);
var out = arr.reverse();
console.log(arr);
console.log(out );
var arr = [0 , 1 , 5 , 10 , 15 ];
arr.reverse();
console.log(arr);
var arr = [1 , 0 , 5 , 15 , 10 ];
arr.reverse();
console.log(arr);
var arr = [0 , 1 , 5 , 10 , 15 ];
arr.sort();
console.log(arr);
function sortNumber(a, b) {
return a - b
}
arr.sort(sortNumber);
console.log(arr);
var arr = [1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 ];
var out = arr.slice(2 ,3 );
console.log(arr);
console.log(out );
var arr = [1 , 2 , 3 , 4 , 5 , 6 ];
var out = arr.join ();
console.log(arr);
console.log(out );
out = arr.join ("" );
console.log(out );
out = arr.join ("&" );
console.log(out );
扩充方法
/** 删除数组中指定索引的数据 **/
Array.prototype.deleteAt = function (index) {
if (index < 0 ) {
return this ;
}
return this .slice(0 , index).concat(this .slice(index + 1 , this .length));
}
/** 数组洗牌 **/
Array.prototype.random = function () {
var tempArr = [], me = this , t;
while (me.length > 0 ) {
t = Math.floor(Math.random() * me.length);
tempArr[tempArr.length] = me[t];
me = me.deleteAt(t);
}
return tempArr;
}
Array.prototype.orderRandom = function () {
return this .sort(function () {
return Math.random() > 0.5 ? "-1" : "1" ;
});
}
/** 数字数组排序 **/
Array.prototype.sortNum = function (i) {
if (!i) {
i = 0 ;
}
if (i == 1 ) {
return this .sort(function (a, b) {
return b - a;
});
}
return this .sort(function (a, b) {
return a - b;
});
}
/** 获取数字数组中的最大项 **/
Array.prototype.getMax = function () {
return this .sortNum(1 )[0 ];
}
/** 获取数字数组中的最小项 **/
Array.prototype.getMin = function () {
return this .sortNum(0 )[0 ];
}
/** 数组第一次出现指定元素的位置 **/
Array.prototype.indexOf = function (o) {
for (var i = 0 ; i < this .length; i++) {
if (this [i] == o) {
return i;
}
}
return -1 ;
}
/** 去除数组中的重复项 **/
Array.prototype.arrUnique = function () {
var reset = [], done = {};
for (var i = 0 ; i < this .length; i++) {
var temp = this [i];
if (!done[temp]) {
done[temp] = true ;
reset.push(temp);
}
}
return reset;
}
伪数组 转真数组
var 伪数组 = {0 :'值1' , 1 :'值2' , 2 :'值3' , length: 3 }
Array .property.slice.call(伪数组);