嗨,在我的第一次nodejs面试中,面试官要求我从一个未排序的数组中删除所有重复的元素,而不使用任何内置函数,在最小TC中使用java脚本,也不使用任何其他数组。
这是我的努力。
var input = [1, 2, 3, 3, 4, 5,2, 6,3,6,1];
var current = input[0];
var found = false;
function removeDuplicate() {
for (var i = 0; i < input.length; i++) {
if (current == input[i]) {
//found = false;
} else if (current != input[i]) {
console.log(" " + current);
current = input[i];
found = false;
}
}
console.log(" " + current);
}
removeDuplicate();
5条答案
按热度按时间smtd7mpg1#
我不太清楚什么是内置函数,或者函数的内置程度如何,所以我假设不允许使用
indexOf
、hasOwnProperty
、Array.prototype.push
......如果你想删除元素,那么我能做的最好的就是保存元素,并给予最终数组的长度,但在JavaScript中,它实际上是有效的,因为JavaScript中的数组只是一个可枚举的对象,有一个额外的属性
length
。z4bn682m2#
一行没有循环的普通JavaScript
既然这看起来像是家庭作业,那么至少要努力让解决方案变得有趣。
这是我的第一个解决方案,但它使用了一个内置的
.filter()
方法:下面是另一个不使用内置函数的解决方案:
这里有一行普通的JavaScript加上一个方便的 Package 器--第二行是这样用途:
但如果你不介意的话
然后您可以删除第二行(当然也可以将
f
重命名为更好的名称)。ldxq2e6h3#
wlzqhblo4#
jvidinwx5#