Первый - более обычный метод
Идея:
1. Создайте новый результат хранения массива
2. Возьмите элемент из исходного массива в цикле FOR, сравните с массивом с этим циклом элемента с результатом этого элемента
3. Если в массиве результатов нет такого элемента, он хранится в массиве
Код кода копирования следующим образом:
Array.prototype.unique1 = function () {
var res = [this [0]];
for (var i = 1; i <this.length; i ++) {
var repeat = false;
for (var j = 0; j <res.length; j ++) {
if (this [i] == res [j]) {
Повторите = true;
Перерыв;
}
}
if (! Повторите) {
res.push (это [i]);
}
}
Вернуть Res;
}
Var arr = [1, 'a', 'a', 'b', 'd', 'e', 'e', 1, 0]
Оповещение (arr.unique1 ());
Второй метод более эффективен, чем вышеуказанный метод
Идея:
1. Сначала сортируйте оригинальный массив
2. Проверьте, является ли первый элемент в исходном массиве, что и последний элемент в массиве результатов.
3. Если отличается, сохраните элемент в массив результатов
Код кода копирования следующим образом:
Array.prototype.unique2 = function () {
this.sort ();
var res = [this [0]];
for (var i = 1; i <this.length; i ++) {
if (this [i]! == res.length -1]) {
res.push (это [i]);
}
}
Вернуть Res;
}
Var arr = [1, 'a', 'a', 'b', 'd', 'e', 'e', 1, 0]
Оповещение (arr.unique2 ());
Второй метод также будет иметь определенные ограничения, потому что сортировка до возврата, последний результат последнего возврата также сортируется. Если порядок массива не требуется не изменять заказ, этот метод не может быть принят.
Третий метод (рекомендуется)
Идея:
1. Создайте новый результат хранения массива
2. Создать пустой объект
3. Когда цикл, выберите элемент и объект каждый раз, чтобы сравнить его.
Примечание. Что касается того, как сравнить, возьмите элемент из исходного массива, а затем обратитесь к этому атрибуту в объекте.
Код кода копирования следующим образом:
Array.prototype.unique3 = function () {
var res = [];
var json = {};
for (var i = 0; i <this.length; i ++) {
if (! json [this [i]]) {
res.push (это [i]);
json [this [i]] = 1;
}
}
Вернуть Res;
}
var arr = [112,112,34, «Привет», 112,112,34, «Привет», «str», «str1»];
Оповещение (arr.unique3 ());