最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

js巧妙去除数组中的重复项_javascript技巧

来源:动视网 责编:小采 时间:2020-11-27 20:47:00
文档

js巧妙去除数组中的重复项_javascript技巧

js巧妙去除数组中的重复项_javascript技巧:时不时的看下YUI的源码, 总会有些收获. 一. YUI中的源码' 代码如下: var toObject = function(a) { var o = {}; for (var i=0, j=a.length; i} return o; }; var keys = function(o) { var a=[], i; for (i
推荐度:
导读js巧妙去除数组中的重复项_javascript技巧:时不时的看下YUI的源码, 总会有些收获. 一. YUI中的源码' 代码如下: var toObject = function(a) { var o = {}; for (var i=0, j=a.length; i} return o; }; var keys = function(o) { var a=[], i; for (i


时不时的看下YUI的源码, 总会有些收获.

一. YUI中的源码'
代码如下:
var toObject = function(a) {
var o = {};
for (var i=0, j=a.length; i}
return o;
};
var keys = function(o) {
var a=[], i;
for (i in o) {
if (o.hasOwnProperty(i)) { // 这里, YUI源码中是lang.hasOwnProperty(o, i)
a.push(i);
}
}
return a;
};
var uniq = function(a) {
return keys(toObject(a));
};

注:为了书写方便, 我省略了各方法前的类名, 大伙可自行查阅YUI的源码, 2.7.0b与2.8.0r4均可(此部分的代码是一样的).

二. 该方法的思路
1. 先以目标数组的值为key生成一个对象. 这一步是最核心的: 因为在一个对象中, key是无法重复的, 这样就很巧妙的排除了重复值;

2. 遍历生成的对象, 将这些key取出来放到一个数组中, OK, 到此就大功告成了!(简单吧, 只需两步就行)

三. 该方法的特点
1. 对于该方法, 不论数组有多少项, 都只会遍历两次, 在性能上的优势较明显(想想自己以前的做法: 对数组项进行逐个对比, 其性能之差, 可想而知).

2. 经我的测试, 该方法只适用于数组项为字符串, 数字的一维数组(我觉得, 对多维数组进行排除重复项的操作, 实在是太杯具了!).

其它的方法可以参考上一篇文章。

文档

js巧妙去除数组中的重复项_javascript技巧

js巧妙去除数组中的重复项_javascript技巧:时不时的看下YUI的源码, 总会有些收获. 一. YUI中的源码' 代码如下: var toObject = function(a) { var o = {}; for (var i=0, j=a.length; i} return o; }; var keys = function(o) { var a=[], i; for (i
推荐度:
标签: 重复 js 重复项
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top