给数组添加新方法,去重,获取最大值最小值
第一种让原来的次序打乱,随机数
Array.prototype.shuffle = function() { var input = this; for (var i = input.length-1; i >=0; i--) { var randomIndex = Math.floor(Math.random()*(i+1)); var itemAtIndex = input[randomIndex]; input[randomIndex] = input[i]; input[i] = itemAtIndex; } return input; };
var tempArray = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ]
var tempArrayNew=tempArray.shuffle();
第二种获取数组的最大值
Array.prototype.max = function () { // 将数组第一个元素的值赋给max var max = this[0]; // 使用for 循环从数组第一个值开始做遍历 for (var i = 1; i < this.length; i++) { // 如果元素当前值大于max,就把这个当前值赋值给max if (this[i] > max) { max = this[i]; } } // 返回最大的值 return max; };
var tempArray = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ]
var tempArrayMax=tempArray.max(); //10
第三种获取数组的最小值
Array.prototype.min = function () { var min = this[0]; this.forEach(function(ele, index,arr) { if(ele < min) { min = ele; } }) return min; };
var tempArray = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ]
var tempArrayMin=tempArray.min();//1
Array.prototype.unique= function () { // 构建一个新数组存放结果 var newArray = []; // 创建一个空对象 var object = {}; // for循环时,每次取出一个元素与对象进行对比 // 如果这个元素不重复,则将它存放到结果数中 // 同时把这个元素的内容作为对象的一个属性,并赋值为1, // 存入到第2步建立的对象中 for (var i = 0; i < this.length; i++){ // 检测在object对象中是否包含遍历到的元素的值 /*typeof (this[i]) 是判断什么类型*/ /* typeof (this[i])+ this[i]是字符串拼接,例如第一次循环number1*/ if(!object[typeof(this[i]) + this[i]]) { // 如果不包含,将存入对象的元素的值推入到结果数组中 newArray.push(this[i]); // 如果不包含,存入object对象中该属性名的值设置为1 object[typeof(this[i]) + this[i]] = 1; } } return newArray; }var arr = [1,2,3,4,1,3,4,56,32,34,2]; var arrUnique=arr.unique(); console.log(arrUnique);//1,2,3,4,56,32,34
第四种数组从小到大排序
function sortNumberMin(a,b) {
return a - b;
}
var arr2=[1,44,22,12,2,8];
var arr2SoetMin=arr2.sort(sortNumberMin);
console.log(arr2SoetMin);//1,2,8,12,22,44
第五种数组从大到小排序
function sortNumberMax(a,b) {
return b-a;
}
var arr2=[1,44,22,12,2,8];
var arr2SoetMax=arr2.sort(sortNumberMax);
console.log(arr2Soetax);//44,22,12,8,2,1
</script>
记下点滴,等老了慢慢欣赏