我目前正在尝试使用js-assessment学习一些JavaScript,可在此处找到:https://github.com/rmurphey/js-assessment。
我编写了以下代码,让您在数组中找到重复项:
function duplicatesInArray(arr) {
var test;
var res = [];
for (var i = 0; arr[i]; i++) {
test = arr[i];
for (var j = i + 1 ; arr[j]; j++) {
if(arr[j] === test) {
res.push(arr[j]);
break;
}
}
}
return res;
}
哪个工作正常,但这是我在github上找到的一个anwser(它也有效):
function anotherDuplicatesInArray(arr) {
var seen = {};
var dupes = [];
for (var i = 0, len = arr.length; i < len; i++) {
seen[arr[i]] = seen[arr[i]] ? seen[arr[i]] + 1 : 1;
}
for (var item in seen) {
if (seen.hasOwnProperty(item) && seen[item] > 1) {
dupes.push(item);
}
}
return dupes;
}
我的问题是:如何测试哪个代码更好?