Javascript 去除数组的重复元素


Posted in Javascript onMay 04, 2010

我打开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”,意思大概即“不要过度设计,适用至上”,我这几年的工作经验也常常印证着这个道理。不知道你怎么看。

Javascript 相关文章推荐
Prototype1.6 JS 官方下载地址
Nov 30 Javascript
深入理解JavaScript系列(8) S.O.L.I.D五大原则之里氏替换原则LSP
Jan 15 Javascript
js获取或设置当前窗口url参数的小例子
Oct 14 Javascript
使用jQuery将多条数据插入模态框的实现代码
Oct 08 Javascript
JavaScript中实现依赖注入的思路分享
Jan 15 Javascript
jQuery 实现ajax传入参数含有特殊字符的方法总结
Oct 17 Javascript
基于JavaScript实现的快速排序算法分析
Apr 14 Javascript
JS实现元素上下左右移动效果
Oct 18 Javascript
微信小程序签到功能
Oct 31 Javascript
Electron 如何调用本地模块的方法
Feb 01 Javascript
Vue 列表上下过渡效果的实例代码
Jun 25 Javascript
基于Angular 8和Bootstrap 4实现动态主题切换的示例代码
Feb 11 Javascript
JavaScript中SQL语句的应用实现
May 04 #Javascript
javascript 文章截取部分无损html显示实现代码
May 04 #Javascript
跨浏览器的 mouseenter mouseleave 以及 compareDocumentPosition的使用说明
May 04 #Javascript
div+css布局的图片连续滚动js实现代码
May 04 #Javascript
javascript面向对象之Javascript 继承
May 04 #Javascript
Javascript 面向对象之重载
May 04 #Javascript
JavaScript 面向对象的之私有成员和公开成员
May 04 #Javascript
You might like
php+MySql实现登录系统与输出浏览者信息功能
2016/07/01 PHP
php实现基于pdo的事务处理方法示例
2017/07/21 PHP
IE iframe的onload方法分析小结
2010/01/07 Javascript
AngularJS iframe跨域打开内容时报错误的解决办法
2015/01/26 Javascript
jQuery简单实现提交数据出现loading进度条的方法
2016/03/29 Javascript
浅谈DOCTYPE对$(window).height()取值的影响
2016/07/21 Javascript
Bootstrap3 datetimepicker控件使用实例
2016/12/13 Javascript
vue-router:嵌套路由的使用方法
2017/02/21 Javascript
详解微信小程序Radio选中样式切换
2017/07/06 Javascript
vuejs使用FormData实现ajax上传图片文件
2017/08/08 Javascript
简单谈谈JS中的正则表达式
2017/09/11 Javascript
react-native 完整实现登录功能的示例代码
2017/09/11 Javascript
Vue实现点击时间获取时间段查询功能
2020/08/21 Javascript
bootstrap动态调用select下拉框的实例代码
2018/08/09 Javascript
jQuery+css last-child实现选择最后一个子元素操作示例
2018/12/10 jQuery
详解微信小程序胶囊按钮返回|首页自定义导航栏功能
2019/06/14 Javascript
[02:44]DOTA2英雄基础教程 克林克兹
2014/01/15 DOTA
[00:13]天涯墨客二技能展示
2018/08/25 DOTA
Python操作Mysql实例代码教程在线版(查询手册)
2013/02/18 Python
python获取网页状态码示例
2014/03/30 Python
dataframe设置两个条件取值的实例
2018/04/12 Python
解决tensorflow测试模型时NotFoundError错误的问题
2018/07/27 Python
Python设计模式之简单工厂模式实例详解
2019/01/22 Python
淘宝秒杀python脚本 扫码登录版
2019/09/19 Python
Python网络编程之使用TCP方式传输文件操作示例
2019/11/01 Python
使用Python文件读写,自定义分隔符(custom delimiter)
2020/07/05 Python
Django restful framework生成API文档过程详解
2020/11/12 Python
extern在函数声明中是什么意思
2014/01/19 面试题
创意活动策划书
2014/01/15 职场文书
运动会广播稿200字
2014/01/15 职场文书
优秀的2014年两会精神解读
2014/03/17 职场文书
幼儿园大班毕业教师寄语
2014/04/03 职场文书
个人四风问题整改措施思想汇报
2014/10/04 职场文书
2014年社团工作总结范文
2014/11/27 职场文书
美容院管理规章制度
2015/08/05 职场文书
800字作文之大雪
2019/12/04 职场文书