前段时间去了一个公司面试,做题过程中遇到这么一个JS题目“如何消除数组中重复的元素”。我的JS是很菜的,当时回答得有些勉强,具体思路是这样的,双层循环,逐个判断,不重复则push进一个新的数组,最后返回新数组。下面是具体的js代码:
function getNewArr(oldArr){
if(typeof oldArr != "object") return oldArr;
var newArr = [];
var oldArrLen = oldArr.length-1, newArrLen = -1, flag = false;
for(var i=oldArrLen; i>=0; i--){
flag = false;
for(var j=newArrLen; j>=0; j--){
if(oldArr === newArr[j]){
flag = true;
break;
}
}
if(!flag) newArrLen = newArr.push(oldArr)-1;
}
return newArr;
}
也许这个方法对于小型数组是可行的,但是对于一些大型的数组,我想效率可能会直线下降,但是我暂时只能想到这么做,悲催啊。
关于判断相等那里,我使用了全等“===”,是考虑到JS数组中存放的字段类型不确定,举个简单的例子:
JS中 “123”==123 结果会返回true,这里的操作其实是JS自身转换过的,故对于js这样的弱类型语言,双等用在这里我感觉不是很合适,所以我使用了全等“===”,即“123”===123 会返回false。
也许这里还会有更好,更效率快捷的方法,如果你知道,请留言讨论,谢谢!
分享到:
相关推荐
1.数组求和?(用递归,只用一行代码) 2.求数组的最大值和最小值(用递归的方法,将数组分为左右两个子数组,返回条件是左右数组只剩一个或两个元素)
java基础面试题数组中重复的数字本资源系百度网盘分享地址
JavaScript面试题,JS面试题,WEB前端面试题下载.pdf
数组 - 需要参加面试的人
c++面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试...
JavaScript面试题汇总,内含答案JavaScript面试题汇总,内含答案JavaScript面试题汇总,内含答案JavaScript面试题汇总,内含答案JavaScript面试题汇总,内含答案JavaScript面试题汇总,内含答案JavaScript面试题汇总...
javascript面试题汇总javascript面试题汇总javascript面试题汇总
js面试题,里面有jquery和ajax等方面的面试题
面试题总结:数组和链表的区别 数组和链表.pdf
js面试
剑指offer面试题库中第三题的C语言代码。在一个长度为n的数组里的所有数字都在0~n-1的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。
不错的一本javascript面试题,你看了会喜欢的
这里分享一个前端面试高频题,主要实现javascript删除数组重复元素。希望对初学者有所帮助 //数组去重的方法 Array.prototype.unique=function(){ //集中声明变量 var oldArr=this, newArr=[oldArr[0]], len=...
2019js数组前端经典算法面试题.docx2019js数组前端经典算法面试题.docx
一道关于项目整合的面试题
JavaScript资源
title:面试题03 数组中重复的数字 introduction: 在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。 数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中...
2022java面试题、JVM面试题、多线程面试题、并发编程、Redis面试题、MySQL面试题、Java2022面试题、Netty面试题、Elasticsearch面试题、Tomcat面试题、Dubbo面试题、Kafka面试题、Linux面试题、2021面试题、java面试...
2023java最新阿里巴巴面试题2023java最新阿里巴巴面试题2023java最新阿里巴巴面试题2023java最新阿里巴巴面试题2023java最新阿里巴巴面试题2023java最新阿里巴巴面试题2023java最新阿里巴巴面试题2023java最新阿里...
前端面试题js集合,js常见面试题及基础知识,主要包括js基础知识到js进阶学习的资料,也是正在求职宝宝们必看的js面试题,希望对大家有帮助,若有啥不懂可大方指出来哈