Вот код, с каждой строкой комментария!Я надеюсь, что это поможет вам;)
function find_duplicate_in_array(arra1) {
// Temporary count of each item in the input array/
var object = {};
// Final result containing each item that has been seen more than one time.
var result = [];
// For each item of the array...
arra1.forEach(function (item) {
// If it is not in the temporary object, initialize it to 0.
if(!object[item])
object[item] = 0;
// Add one since we just have found it!
object[item] += 1;
})
// Now, every item of the input array has been counted in object.
// For each item of object:
for (var prop in object) {
// If it has been counted more than one time, add it to the result.
if(object[prop] >= 2) {
result.push(prop);
}
}
// Return the result.
return result;
}
console.log(find_duplicate_in_array([1, 2, -2, 4, 5, 4, 7, 8, 7, 7, 71, 3, 6]));
Сложность указана в следующих строках:
if(!object[item])
object[item] = 0;
object[item] += 1;
Это то же самое, что и более строгая запись:
if(!object[item]) {
object[item] = 0;
}
object[item] += 1;
Если вы не установите фигурные скобки, будет выполнена только следующая инструкция!