js面试题——为javascript增加删除重复元素的方法
来源:互联网 发布:rockwell plc编程软件 编辑:程序博客网 时间:2024/05/16 16:21
上次看到一个js笔试题,回来之后完成了下,感觉做的过程中还是挺有收获的,虽然我的重心是放在服务器端,但是目前js的重要性已远远超过以前,是我们完全不能忽略了的,应该说我们每一个开发人员都有必要对其进行系统的学习,而不是用什么看什么。
这次题目的需求就是为Array增加一个方法,删除重复的元素。目前我考虑的是数组中存储的是基本类型而非引用。代码如下:
<script language="javascript">
Array.prototype.deleteSameTwo = function() {
var tempArr = new Array();
function contains(temp) {
var flag = false;
if(tempArr.length==0)
{
return flag;
}
for ( var i=0;i<tempArr.length;i++ ) {
if (tempArr[i] == temp) {
flag = true;
break;
}
}
return flag;
}
while (this.length > 0) {
var temp = this.shift();
if (!contains(temp)) {
tempArr.push(temp);
}
}
return tempArr;
}
</script>
我们在测试的时候可以用一下代码进行测试:
var array = new Array();
array.push('1');
array.push('1');
array.push('2');
array.push('2');
array.push('3');
array = array.deleteSameTwo();
alert(array);
要注意的是上面的for语句:
for ( var i=0;i<tempArr.length;i++ ) {
if (tempArr[i] == temp) {
flag = true;
break;
}
}
我们不能用for..in代替,刚开始做时我因为未理解他们的区别,而范了错,后来用firefox debug才调试出来,原来错误出在这里
for..in遍历的是某一个对象(或者说一个函数),它并不能遍历数组,如果遍历数组的话,如上面改为
for(var item in tempArr)
{
.....
}
则每次item的值均为undefined(undefined是从null派生来的,所以null==undefined将返回true)
- js面试题——为javascript增加删除重复元素的方法
- 数据存储——Java数组,去掉重复值、增加、删除数组元素的实现方法
- Javascript数组删除重复元素的方法
- JavaScript之删除数组中重复元素的方法
- JavaScript之删除数组中重复元素的方法
- 一道有趣的GOOGLE面试题——找出至少一个重复元素
- js为数组定义删除元素的方法
- javascript的数组元素,为Array增加两个函数,实现删除功能
- javaScript学习笔记——数组末尾元素的增加和删除
- 面试题:删除数组从下标数为i开始的j个元素
- 删除数组重复元素的方法
- 删除Array重复元素的方法
- JavaScript数组Array对象增加和删除元素方法
- js 删除数组重复元素
- Java之——删除ArrayList中的重复元素的2种方法
- 重复元素的删除
- 重复元素的删除
- Javascript面试题-找出数组中频率最高元素的多种方法
- javascript一些关键字的解释
- 数据仓库增量数据获取方法谈
- Qt Model/View
- 批处理文件执行自动拨号投票
- JS判断ip的合法性 判断2个ip的大小
- js面试题——为javascript增加删除重复元素的方法
- 比较两个DataSet,并产生增量数据
- sqlite出现database is locked错误
- 一个exe文件怎么运行起来的
- 决定在这里安家了.
- 在集合中查找第K小的数
- 不错的JS中Cookie的文章
- 生成子系统无法查看到2次开发模块
- SystemState Registry