数组本身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(伪数组);