删除数组中的重复项,为什么此代码不起作用
Removing duplicates in an Array, why this code is not working
嗨,我在下面写了代码
function unique(th){
var obj = {};
for(var i = 0, n = th.length; i < n ; i++){
obj[th[i]] = th[i];
}
obj.length = n ;
return Array.prototype.slice.call(obj);
}
但是,这给了我不需要的输出。请帮助我纠正这一点。这是小提琴。
我不知道
你的逻辑是什么,所以我构建了一个稍微不同且有效的函数,试图让它尽可能清晰:
function unique(th){
var yetseen = {};
var newarray = [];
for(var i = 0, n = th.length; i < n ; i++){
var val = th[i];
if (!yetseen[val]) {
yetseen[val] = true;
newarray.push(val);
}
}
return newarray;
}
使用下划线.js
它是一个库,其中包含许多用于操作数组的函数。
_.uniq
_.uniq(array, [isSorted], [iterator]) 别名:唯一 产生一个 数组的无重复版本,使用 === 测试对象 平等。如果您事先知道数组已排序,则传递 对于isSorted来说为true,将运行更快的算法。如果你愿意 根据转换计算唯一项,传递迭代器 功能。
例
alert(_.uniq([2,2,1,4,5,6,2,9,1,1,6,3,2,1,9,6,4], false)); //yields 2,1,4,5,6,9,3
相关文章:
- 为什么忽略了eval()代码中的语法错误
- 为什么indexOf在这个js代码中不起作用
- 为什么我在这个javaScript代码中使用NaN
- 为什么此验证代码不起作用
- 我的jquery代码不起作用.为什么?
- 为什么代码会指向window对象
- 为什么代码在jsfiddle上运行良好,但在我的dreamweaver上却不正常
- 为什么代码似乎有效,但结果中也包含未定义
- 无法理解为什么代码给出错误:类型错误:0 是只读的
- 为什么代码中添加的html与实际情况不同
- 为什么代码不起作用JS
- .每个循环都没有完全执行..为什么?(代码和日志可用)
- 为什么代码不能与名为jquery 19的脚本一起工作?
- 为什么代码部分中显示的javascript函数在Firefox和Chrome中不起作用?但在IE中工作良好
- 我的JSON有什么问题?解析并解释为什么代码没有按照出现的顺序执行
- javascript函数中的词法作用域,为什么代码返回undefined ?
- 为什么代码放在return语句之后,它会被执行吗?
- JavaScript -为什么代码不能工作
- 为什么代码没有应用于页面中的每个元素
- 为什么代码不起作用(使用 casperjs 提交表单)