Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 16.01.2018, 20:41
Аспирант
Отправить личное сообщение для ninzzo Посмотреть профиль Найти все сообщения от ninzzo
 
Регистрация: 21.05.2013
Сообщений: 42

убрать дубли из массива.
Как убрать дубли?

var array = [
{gID: "11", val: "-200"},
{gID: "22", val: "-200"},
{gID: "11", val: "-200"},
{gID: "22", val: "-200"},
{gID: "33", val: "-200"},
{gID: "22", val: "-200"},
{gID: "66", val: "-200"}
];


на выходе должно быть:

var array = [
{gID: "11", val: "-200"},
{gID: "22", val: "-200"},
{gID: "33", val: "-200"},
{gID: "66", val: "-200"},
];


Какой самый оптимальный способ ?
Я написал функцию на 4 строки но она вроде не очень.
Ответить с цитированием
  #2 (permalink)  
Старый 16.01.2018, 23:14
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

Удаление дубликатов в массиве объектов по уникальному ключу
Ответить с цитированием
  #3 (permalink)  
Старый 16.01.2018, 23:52
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,590

Универсальное решение сложное и парой строк там не отделаешься, а если под конкретный случай то примерно так:
Array.prototype.unique = function( comparator ) {	
	if(typeof comparator !== 'function') 
		comparator = function(first, second){return first === second};	
	var i = this.length, j;

	while(i--) for(j = i; j--;)
		if(comparator(this[i], this[j]))
			this.splice(j, 1);

	return this;
}


var array = [
	{gID: "11", val: "-200"},
	{gID: "22", val: "-200"},
	{gID: "11", val: "-200"},
	{gID: "22", val: "-200"},
	{gID: "33", val: "-200"},
	{gID: "22", val: "-200"},
	{gID: "66", val: "-200"}
];

array.unique(function(first, second){
	return first.gID === second.gID && first.val === second.val 
});

alert(JSON.stringify(array, 0, '\t'))
__________________
29375, 35
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обход многомерного массива с задержкой после каждого цикла Walk Общие вопросы Javascript 2 14.08.2017 16:17
Смещение цикла, обход массива исключая дубли, полный ликбез tybys Общие вопросы Javascript 3 08.11.2015 11:21
Помогите к js коду, написать html код Modrih Элементы интерфейса 8 16.06.2015 18:08
Ввод диапазона значений массива с клавиатуры Воскобоенко Общие вопросы Javascript 11 06.06.2015 22:34
Сортировка массива по возрастанию другого массива. vas88811 Events/DOM/Window 4 12.01.2014 10:31