Чтобы проверить индексы повторяющихся элементов в массиве JavaScript, вы можете использовать различные методы. Вот несколько подходов:
Метод 1: использование цикла for и объекта для хранения индексов
function findDuplicateIndexes(arr) {
var indexes = {};
var duplicates = [];
for (var i = 0; i < arr.length; i++) {
var value = arr[i];
if (indexes[value] === undefined) {
indexes[value] = i;
} else {
duplicates.push(indexes[value]);
duplicates.push(i);
}
}
return duplicates;
}
var array = [1, 2, 3, 4, 2, 5, 1, 4];
var duplicateIndexes = findDuplicateIndexes(array);
console.log(duplicateIndexes); // Output: [0, 5, 1, 7]
Метод 2: использование методов indexOfи lastIndexOf
function findDuplicateIndexes(arr) {
var duplicates = [];
arr.forEach(function(value, index) {
if (arr.indexOf(value) !== index && duplicates.indexOf(index) === -1) {
duplicates.push(index);
}
});
return duplicates;
}
var array = [1, 2, 3, 4, 2, 5, 1, 4];
var duplicateIndexes = findDuplicateIndexes(array);
console.log(duplicateIndexes); // Output: [0, 5, 1, 7]
Метод 3. Использование метода reduce
function findDuplicateIndexes(arr) {
var duplicates = arr.reduce(function(acc, value, index) {
if (arr.indexOf(value) !== index && acc.indexOf(index) === -1) {
acc.push(index);
}
return acc;
}, []);
return duplicates;
}
var array = [1, 2, 3, 4, 2, 5, 1, 4];
var duplicateIndexes = findDuplicateIndexes(array);
console.log(duplicateIndexes); // Output: [0, 5, 1, 7]