javascript 数组排重

注:以下的方法都是来自前人的贡献和分享。我也是抛砖引玉。顺便提高一下自己的记忆力。

Array.prototype.removeByValue = function(val) {    for(var i=0; i<this.length; i++) {        if(this[i] == val) {            this.splice(i, 1);            break;        }    }}

删除数组里面指定的数组。
调用方法:

endData.removeByValue("3");
----------------------------------------------------------------
function GetDateStr(AddDayCount) {    var dd = new Date();    dd.setDate(dd.getDate()+AddDayCount);    var y = dd.getFullYear();    var m = dd.getMonth()+1;    var d = dd.getDate();    m = m>10?m:"0"+m;    d = d > 10?d:"0"+d;    return y+"-"+m+"-"+d;}

获取当前日期的前一天或者后一天

调用方法:
GetDateStr(-1); 昨天 

GetDateStr(0);  今天

GetDateStr(1);   明天
--------------------------------------------------------------
var getOffSetTop = function (obj) {    var thisObj = obj;    if (!obj) {        return 0;    }    var objOffSetTop = 0;    while (thisObj != null && thisObj != document.body) {        objOffSetTop += thisObj.offsetTop;        thisObj = thisObj.offsetParent;    }    return objOffSetTop;}

获取当前元素的,距页面顶部的距离。

---------------------------------------------------------------------

//倒计时function addGroupTime(obj,timeStamp){    if(timeStamp > 0){        //如果大于hour0.说明尚未到达截止时间        var day = Math.floor(timeStamp/60/60/24);        var hour =Math.floor(timeStamp/60/60%24)+day*24;        var min = Math.floor(timeStamp/60%60);        var sec = Math.floor(timeStamp%60);        hour=hour>=10?hour:"0"+hour;        min=min>=10?min:"0"+min;        sec=sec>=10?sec:"0"+sec;        timeStamp --;        obj.innerHTML="距结束 <span>"+hour+"</span>:<span>"+min+"</span>:<span>"+sec+"</span>";    }else{        //若否,就是已经到结束时间了        obj.innerHTML= "已结束!";    }    setTimeout(function(){       addGroupTime(obj, timeStamp);    },1000);}

调用方法:
addGroupTime(timeObj, 258458);

-------------------------------------------------------------------------

function gotoTop(acceleration,stime) {
   acceleration = acceleration || 0.1;
   stime = stime || 10;
   var x1 = 0;
   var y1 = 0;
   var x2 = 0;
   var y2 = 0;
   var x3 = 0;
   var y3 = 0;
   if (document.documentElement) {
       x1 = document.documentElement.scrollLeft || 0;
       y1 = document.documentElement.scrollTop || 0;
   }
   if (document.body) {
       x2 = document.body.scrollLeft || 0;
       y2 = document.body.scrollTop || 0;
   }
   var x3 = window.scrollX || 0;
   var y3 = window.scrollY || 0;
 
   // 滚动条到页面顶部的水平距离
   var x = Math.max(x1, Math.max(x2, x3));
   // 滚动条到页面顶部的垂直距离
   var y = Math.max(y1, Math.max(y2, y3));
 
   // 滚动距离 = 目前距离 / 速度, 因为距离原来越小, 速度是大于 1 的数, 所以滚动距离会越来越小
   var speeding = 1 + acceleration;
   window.scrollTo(Math.floor(x / speeding), Math.floor(y / speeding));
 
   // 如果距离不为零, 继续调用函数
   if(x > 0 || y > 0) {
       var run = "gotoTop(" + acceleration + ", " + stime + ")";
       window.setTimeout(run, stime);
   }
}

返回顶部的按钮!

调用方法:gotoTop();------------------------------------------------------------

这些功能在网页开发的时候,很实用。在学习的过程中提高自己。
时间: 2024-08-05 19:24:25

javascript 数组排重的相关文章

数组排重

1 function pass(arr){ 2 var result=arr.filter(function(item,i){ 3 return arr.indexOf(item)==i; 4 }) 5 return result; 6 } 7 console.log(pass([0,1,2,1,3,5,2,2,2,'2','5']));//结果[0, 1, 2, 3, 5, "2", "5"] 利用数组的indexOf方法的特点,indexOf只要找到要查找项的索

javascript数组除重及数组排序

1 var arr =[3,5,7,4,2,3,0,5,3]; 2 //console.log(arr.reverse());//数组反序 3,5,0,3,2,4,7,5,3 3 4 function sort(){//去重 5 for (var i=0; i < arr.length; i++) { 6 for (j = i+1; j < arr.length; j++) { 7 if(arr[i]==arr[j]){ 8 arr.splice(j,1); //删除等于arr[i]的值 ,a

php数组排重

数组中重复项的去除 2010-07-28 15:29 一维数组的重复项: 使用array_unique函数即可,使用实例如下: <?php                   $aa=array("apple","banana","pear","apple","wail","watermalon");                   $bb=array_unique($aa);

强大的 数组排重

function going_load(){ net.ajax({ url:"going", data : { num:going_num }, success:function(data){ var _data = data.data, cur_data = [] _data.forEach(function (v,k){ var cur_id = v.id; if (!goingList['id_'+cur_id]){ goingList.push(v); goingList['i

自己写的数组排重+排序

var a = [11,2,3,4,5,7,8,4,33,2,6]; Array.prototype.sorts = function(){ var $this = this, i=1, arrays = $this.sort(function(a,b){return (a-b)>0}), len = arrays.length; if(len<2) return arrays; while(i < len){ if(arrays[i] == arrays[i-1]){ len--; a

JavaScript基础之数组的重排序

JavaScript基础之数组的重排序 数组(Array)算是继Object之后我们最常用到的类型了.与其他语言不同的是,javascript数组的每一项可以保存任何类型的数据,并且数组的大小是可以动态调整的. JavaScript已经为我们提供了两个数组重排序的方法,reverse()和sort() 方法. 其中reverse()方法会反转数组项的顺序.举个栗子: var values = [18,4,56,1,"a","b","abc"];

javascript数组总结

数组是一个有序的集合,javascript数组中的元素的类型可以是任意的,同一个数组不同元素之间的类型也是可以不同的.数组也是对象,有个length属性,记录数组的长度. 创建数组有两种方法: 数组直接量,var arr = [1,2,];这样会创建一个有两个元素的数组.之所以不是3个元素,是因为最后一个逗号是可选的. 另外一种是调用构造函数:    var arr = new Array(10);这样会创建一个具有10个元素的数组:或者          var arr = new Array

JavaScript 数组去重

JavaScript 数组去重 Why underscore (觉得这部分眼熟的可以直接跳到下一段了...) 最近开始看 underscore.js 源码,并将 underscore.js 源码解读 放在了我的 2016 计划中. 阅读一些著名框架类库的源码,就好像和一个个大师对话,你会学到很多.为什么是 underscore?最主要的原因是 underscore 简短精悍(约 1.5k 行),封装了 100 多个有用的方法,耦合度低,非常适合逐个方法阅读,适合楼主这样的 JavaScript

JavaScript快排与原生sort的测试

今天工作室断网!果断回宿舍,不然各种资料都没有.(他说将来会找到!)不好意思,又哼起来了.进入主题,大家都知道,快排是各种排序算法中,最高效的也是应用最广的,还有更重要的一点,面试特别爱考的! 其实大家或多或少都听说过快排,也就是先从取出一个基准值,然后再把其它的数与之相对比,小的放左边的集合里,大的放右边的集合里,再通过递归不断重复该步骤,实现最高效率的quickSort. Talk is cheap, show you my code! 排序结果我就不写出来啦,大家都会数大小,哈哈哈. 刚说