无需申请自动送彩金68_白菜送彩金网站大全[无需申请秒送彩金]
做最好的网站
来自 无需申请自动 2019-08-01 03:55 的文章
当前位置: 无需申请自动送彩金68 > 无需申请自动 > 正文

关于js数组去重的问题小结,二维数组排序的用法

复制代码 代码如下:

1.根据js对象中key不重复的原则,构思出数组去重的方法,按照最常规的思维如下:

最近在搞js 排序的问题,因为数据库排序太耗资源,如果能转移到客户端去排序,能大大D减少服务器内存消耗。客户端的话,除了js,就是as了,可惜我as学得太烂,所以只能选择js来研究研究了。。。经过我的测试,js内置方法sort的效率非常高

<script language = "javascript" type = "text/javascript">
function test(){
window.alert("你投了一次票");
//解除绑定事件
document.getElementById("but1").removeEventListener("onclick",test);
}
</script>
<body>
<input id = "but1" type = "button" value = "投票" />
<script language = "javascript" type = "text/javascript">
//动态绑定事件 可以取消绑定
document.getElementById("but1").addEventListener("onclick",test);
</script>
</body>

复制代码 代码如下:

我们知道在js中默认提供了sort函数,但是这个函数默认是按照数组内容的ascii码升序进行排列的,如果我们要对二维数组排序要如何做呢?在php中是有multi_sort函数可供调用的,但是在js中似乎没有这种函数,但是没关系 ,因为js的sort函数其实也提供了参数可以定义比较函数进行二维数组的排序。

图片 1

function distinctArray(arr){
var obj={},temp=[];
for(var i=0;i<arr.length;i ){
if(!obj[arr[i]]){
temp.push(arr[i]);
obj[arr[i]] =true;
}
}
return temp;
   }
   var testarr=[1,2,3,2];
   console.log(distinctArray(testarr));// [1,2,3]

1、按数值排序 假设有如下数组

您可能感兴趣的文章:

  • 讲两件事:1.this指针的用法小探. 2.ie的attachEvent和firefox的addEventListener在事件处理上的区别
  • javascript attachEvent和addEventListener使用方法
  • Javascript 的addEventListener()及attachEvent()区别分析
  • JS在IE和FF下attachEvent,addEventListener学习笔记
  • 事件绑定之小测试 onclick && addEventListener
  • addEventListener和attachEvent二者绑定的执行函数中的this不相同
  • window.addEventListener来解决让一个js事件执行多个函数
  • addEventListener()第三个参数useCapture (Boolean)详细解析
  • document.addEventListener使用介绍
  • addEventListener 的用法示例介绍
  • 详解addEventListener的三个参数之useCapture

看起来还不错的样子哦,但是如果变成一下情况:
var testarr1=[1,2,3,"2"];
console.log(distinctArray(testarr));// [1,2,3]
竟然还是一样的结果,这就并非我们想要的了,我们需要的结果应该是[1,2,3,"2"].即去重的过程中需要保证类型的完整性。

复制代码 代码如下:

针对以上情况,我们对上述方法进行改进:

var arr = [[1, 2, 3], [7, 2, 3], [3, 2, 3]];

复制代码 代码如下:

这里如果我们要按每个子数组的第一列来排序要如何做呢,我们可以定义一个比较函数:

function distinctArrayImprove(arr){
var obj={},temp=[];
for(var i=0;i<arr.length;i ){
if(!obj[typeof (arr[i]) arr[i]]){
temp.push(arr[i]);
obj[typeof (arr[i]) arr[i]] =true;
}
}
return temp;
}

复制代码 代码如下:

本文由无需申请自动送彩金68发布于无需申请自动,转载请注明出处:关于js数组去重的问题小结,二维数组排序的用法

关键词: