Javascript 去除数组的重复元素

 更新时间:2010年05月04日 17:20:58   作者:  
在js中,如何去除指定数组中的重复元素?
我打开firebug的console,花了30秒想,30秒写,结果如下:(x为目标数组,y是去除重复元素后的结果)
复制代码 代码如下:

var x=[1,1,3,4,5,3];
var y=[];
var tArray=function(i,arr){
var yap=false;
for(var j=0;j<arr.length;j++){
if(arr[j]==i){yap=true;break;};
}
if(!yap) arr.push(i);
};
for(var t=0;t<x.length;t++){
tArray(x[t],y);
}
alert(y.length);
alert(y.toString());

答案不是唯一的,而且没有标准答案,所以上面的代码是对的也是错的。如果数组是一个复杂对象数组呢?如果数组中包含多个空对象{}呢?要知道js里面有很多特殊甚至是bug的现象,alert({}=={})看看怎么回事...

注:如果谁有标准答案欢迎评论里面发下让大家学习学习。

出题者本身就不会考虑到这些问题。

不要去学习做题,在实际工作中遇到问题时高效解决问题的能力才是真正有价值的。

需要注意的地方补充:

有个问题应该注意下
arr[j]==i 您这里貌似 是指当数组元素 为number类型时的相等性判断...
但是往往我们可能要对不同类型做 相等性判断... 这个是实际应用时应该考虑的问题

1!=new Number(1)的情况
null==undefined 的情况

0=="0" 的情况 等等

所以 显然 简单的== 和===都是不合适的.
应该独立实现一个 equals 方法 做相等性判断... 要根据需求 设置规则

我举的例子正是针对number类型的数组的,目的是对“面试啥做题”表达一种态度。实际应用中应该根据实际需求去考虑。除非实际工作中要求或者我是个js学术研究者,否则我是不会独立去实现一个equals方法的。国外的开发员往往遵循一个信条:“Do The Simplest Thing That Could Possibly Work”,意思大概即“不要过度设计,适用至上”,我这几年的工作经验也常常印证着这个道理。不知道你怎么看。

相关文章

  • JSON.stringify的多种用法总结

    JSON.stringify的多种用法总结

    这篇文章主要给大家介绍了关于JSON.stringify使用的相关资料, JSON.stringify()方法是将一个JavaScript值(对象或者数组)转换为一个 JSON字符串,需要的朋友可以参考下
    2021-06-06
  • 微信小程序组件生命周期的踩坑记录

    微信小程序组件生命周期的踩坑记录

    这篇文章主要给大家介绍了关于微信小程序组件生命周期的踩坑记录,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • 一段利用WSH修改和查看IP配置的代码

    一段利用WSH修改和查看IP配置的代码

    建议增加查询条件,更准确地修改指定网卡。 本人是铁通的线路,这样看比较不错的wsh功能呢,喜欢vbs的朋友,可以用vbs实现,功能更强
    2008-05-05
  • javascript面向对象程序设计(一)

    javascript面向对象程序设计(一)

    这篇文章主要介绍了javascript面向对象程序设计,分享给大家一段代码,注释里讲解的非常详细,有助于我们理解面向对象,这里推荐给大家。
    2015-01-01
  • 如何基于JavaScript判断图片是否加载完成

    如何基于JavaScript判断图片是否加载完成

    这篇文章主要介绍了如何基于JavaScript判断图片是否加载完成,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-12-12
  • JS 文件本身编码转换 图文教程

    JS 文件本身编码转换 图文教程

    JS编码转换,这句话本身就是一句具有二重义的话。通常理解为JS文件里能转换编码的代码,但是,我所碰到的问题并不是这样的,是要解决JS文件本身的编码问题,它是UTF-8编码的还是ANSI编码的?
    2009-10-10
  • 如何使用Javascript获取距今n天前的日期

    如何使用Javascript获取距今n天前的日期

    本篇文章是对使用Javascript获取距今n天前日期的实现代码进行了详细的分析介绍,需要的朋友参考下
    2013-07-07
  • 基于JS实现简单的随机抽取幸运员工系统

    基于JS实现简单的随机抽取幸运员工系统

    这篇文章主要为大家详细介绍了基于HTML+JavaScript实现简单的随机抽取幸运员工系统,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起了解一下
    2023-11-11
  • javascript将list转换成树状结构的实例

    javascript将list转换成树状结构的实例

    下面小编就为大家带来一篇javascript将list转换成树状结构的实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-09-09
  • 微信小程序实现自动播放视频模仿gif动图效果实例

    微信小程序实现自动播放视频模仿gif动图效果实例

    这篇文章主要给大家介绍了关于微信小程序实现自动播放视频模仿gif动图效果的相关资料,通过本文介绍的方法可以实现自动播放视频,视频无控制条无声音且自动循环播放,需要的朋友可以参考下
    2021-07-07

最新评论