Получить массив без повторяющихся элементов
Помогите доделать лаб.работу, написать функцию, возвращающую массив без повторяющихся элементов, при этом чтобы не изменялся порядок следования элементов.
Например для [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, время: 18:08. |