文章出處
文章列表
/** 刪除數組中指定索引的數據 **/
Array.prototype.deleteAt = function (index) {
if (index < 0) {
return this;
}
// 截取要刪除索引之前的值,然后和之后的值合并。
return arr.slice(0,index).concat(arr.slice(index+1));
}
/** 數組洗牌 **/
Array.prototype.random = function () {
var tempArr = [], me = this, t;
// 如果當前數組的len大于0的話執行
while (me.length > 0) {
// 讓當前數組的長度乘以隨機數,避免是小數,取整 因為隨機數是一個小于0的數,所以乘以數組的長度最大只會是數組的長
t = Math.floor(Math.random() * me.length);
// 通過一個臨時數組保存那個隨機數里面的數組值。
tempArr[tempArr.length] = me[t];
// 刪除那個已經添加到臨時數組里面的值。
me.splice(t,1);
}
return tempArr;
// 原理,從原數組中隨機抽出一個數添加到臨時數組中,然后刪除將原數組中抽取出來的那個值。
}
Array.prototype.orderRandom = function () {
return this.sort(function (a,b) {
return Math.random() > 0.5 ? a<b : a>b;
});
// 因為sort函數會將數組中的前一個值和后一個值循環進行比較,根據排序的規則進行交換位置,然后我們可以通過一個隨機數判斷它是否大于0.5一半的值,如果大于就讓它怎么樣排序,否則怎么樣排序,總之不要讓這個排序一樣。
}
/** 數字數組排序 **/
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;
});
// 如果傳入的值小于0等于0則按從小到大排序,如果等于1從大到小排序。
}
/** 獲取數字數組中的最大項 **/
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; } } // 找不到返回-1 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 array = [2,4,9,4,3,4,6,5,9,10]; var temp = []; var isTrue = null; // 添加一個臨時數組 for(var i=0,len=array.length;i<len;i++){ // 判斷這個臨時數組的長度,是不是0,如果是的話給它添加一個。 if(temp.length!=0){ // 拿這個臨時數組里面的每一個值來判斷里面的值和array里面的值相同。 for(var k=0,len2=temp.length;k<len2;k++){ // 定義一個開關,如果值相同就不讓它添加,否則才添加。 isTrue = true; if(temp[k]===array[i]){ isTrue = false; break; } } // 判斷是否為真 if(isTrue){ temp.push(array[i]); } }else{ temp.push(array[i]); } } console.log(temp); //[2, 4, 9, 3, 6, 5, 10]
文章列表
全站熱搜