私は現在、https ://github.com/rmurphey/js-assessment にある js-assessment を使用して JavaScript を学習しようとしています。
次のコードを作成しました。これにより、配列内の重複を見つけることができます。
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;
}
私の質問は、どのコードが優れているかをテストするにはどうすればよいですか?