js数组去重
2016-02-18 13:49
357 查看
Array.prototype.unique1 = function () {
var n = []; //一个新的临时数组
for (var i = 0; i < this.length; i++) //遍历当前数组
{
//如果当前数组的第i已经保存进了临时数组,那么跳过,
//否则把当前项push到临时数组里面
if (n.indexOf(this[i]) == -1) n.push(this[i]);
}
return n;
}
Array.prototype.unique2 = function()
{
var n = {},r=[]; //n为hash表,r为临时数组
for(var i = 0; i < this.length; i++) //遍历当前数组
{
if (!n[this[i]]) //如果hash表中没有当前项
{
n[this[i]] = true; //存入hash表
r.push(this[i]); //把当前数组的当前项push到临时数组里面
}
}
return r;
}
Array.prototype.unique3 = function()
{
var n = [this[0]]; //结果数组
for(var i = 1; i < this.length; i++) //从第二项开始遍历
{
//如果当前数组的第i项在当前数组中第一次出现的位置不是i,
//那么表示第i项是重复的,忽略掉。否则存入结果数组
if (this.indexOf(this[i]) == i) n.push(this[i]);
}
return n;
}
原文链接地址:https://segmentfault.com/a/1190000002562454
var n = []; //一个新的临时数组
for (var i = 0; i < this.length; i++) //遍历当前数组
{
//如果当前数组的第i已经保存进了临时数组,那么跳过,
//否则把当前项push到临时数组里面
if (n.indexOf(this[i]) == -1) n.push(this[i]);
}
return n;
}
Array.prototype.unique2 = function()
{
var n = {},r=[]; //n为hash表,r为临时数组
for(var i = 0; i < this.length; i++) //遍历当前数组
{
if (!n[this[i]]) //如果hash表中没有当前项
{
n[this[i]] = true; //存入hash表
r.push(this[i]); //把当前数组的当前项push到临时数组里面
}
}
return r;
}
Array.prototype.unique3 = function()
{
var n = [this[0]]; //结果数组
for(var i = 1; i < this.length; i++) //从第二项开始遍历
{
//如果当前数组的第i项在当前数组中第一次出现的位置不是i,
//那么表示第i项是重复的,忽略掉。否则存入结果数组
if (this.indexOf(this[i]) == i) n.push(this[i]);
}
return n;
}
原文链接地址:https://segmentfault.com/a/1190000002562454
相关文章推荐
- js详解之作用域-实例
- js实现checkbox多选和反选
- STL 优先队列实现的DIJSKTRA算法
- JSHint 配置浅析
- Js实现简单的小球运动特效
- 基于Newtonsoft.Json进行JSON文档的解析
- 《JavaScript高级程序设计》读书笔记(四)
- JS 实现可停顿的垂直滚动
- C#集合转换为json
- 学习html&css&JavaScript记录
- HTML5,CSS,JS知识记录
- angular js随意笔记
- Javascript闭包详解
- 编写可维护的Javascript纪要
- Thymeleaf Javascript 引用与取值
- 初识JSON
- js字符串长度截取 substring、substr、slice
- input标签只能输入数字js实现(且不能输入e或者其他各种符号)
- json转换为各种数据对象格式
- 用JavaScript将数字转换为大写金额