Проверка уникальности элементов массива на JavaScript
Функция проверяет массив на уникальность его элементов. Если все элементы массива уникальны (не имею дублей), то функция вернёт , в противном случае — . Время работы в худшем случае .
function testUnique(A) { var n = A.length; for (var i = 0; i < n-1; i++) { for (var j = i+1; j < n; j++) { if (A[ i ] === A[j]) return false; } } return true; }
Если массив упорядочен, то не сложно составить более эффективный алгоритм проверки уникальности элементов, время работы которого в худшем случае .
function testUniqueSort(A) { var n = A.length; for (var i = 1; i < n; i++) { if (A[i-1] === A[ i ]) return false; } return true; }
Удаление повторяющихся элементов в массиве на JavaScript
Функция Unique(A), которая возвращает массив, содержащий только уникальные элементы . Элементами массива могут быть как числа, так и строки.
function Unique(A) { var n = A.length, k = 0, B = []; for (var i = 0; i < n; i++) { var j = 0; while (j < k && B[j] !== A[ i ]) j++; if (j == k) B[k++] = A[ i ]; } return B; }
Если массив упорядочен, то эффективней этот алгоритм (время ):
function UniqueSort(A) // A - упорядоченный массив. { var n = A.length, B = [A[0]]; for (var i = 1, j = 1; i < n; i++) { if (A[ i ] !== B[j-1]) B[j++] = A[ i ]; } return B; }
Получение уникальных элементов массива на JavaScript
Функция возвращает только уникальные элементы упорядоченного массива, то есть на выходе будет массив только с теми элементами входного упорядоченного массива, которые не имеют дубли.
function getUniqueElems(A) // A - упорядоченный массив. { var n = A.length, B = []; for (var i = 1, j = 0, t; i < n+1; i++) { if (A[i-1] === A[ i ]) t = A[i-1]; if (A[i-1] !== t) B[j++] = A[i-1]; } // На выходе массив только с теми элементами входного return B; // упорядоченного массива, которые не имеют дубли. }
Получение элементов массива, имеющих дубли, на JavaScript
Функция для получения элементов упорядоченного массива, имеющих дубли, то есть на выходе будет массив только с теми элементами входного, упорядоченного массива, которые имеют дубли
function getDublsSortArr(A) // A - упорядоченный массив. { var n = A.length, B = [];
for (var i = 1, j = 0; i < n; i++) { if (A[i-1] === A[ i ]) B[j++] = A[i-1]; }
return UniqueSort(B); // Функцию UniqueSort см. выше. }
Математический форум (помощь с решением задач, обсуждение вопросов по математике).
Если заметили ошибку, опечатку или есть предложения, напишите в комментариях.