Получить массив без повторяющихся элементов
Помогите доделать лаб.работу, написать функцию, возвращающую массив без повторяющихся элементов, при этом чтобы не изменялся порядок следования элементов.
Например для [1,7,2,1,5,8,2,3,4,5,9,5,7] функция должна вернуть [1,7,2,5,8,3,4,9]. |
вот здесь автор предлагает два разных решений http://learn.javascript.ru/array-methods
|
Или так (порядок сохраняется)
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;
}
alert( Unique([1,7,2,1,5,8,2,3,4,5,9,5,7]) );
|
Дзен-трансгуманист,
function uniqueMap ( array ) {
return array.filter( function ( value ) {
return !this.has( value ) && !this.set( value, true );
},
new Map());
}
охренеть что это |
Если в Map использовать логические значения, то лучше уж брать Set.
Хотел показать свой вариант, но он на кофескрипте. |
Цитата:
|
| Часовой пояс GMT +3, время: 01:43. |