2017-01-04 10 views
0

В JS, я создаю массив multidimention использовать мой код как это:Уникальное значение в многомерном массиве в JavaScript

result.each(function(i, element){ 
    init.push({ 
     label : $(this).data('label'), 
     value : $(this).val(), 
    }); 
}); 

Этот массив в JS поджигатель, как это:

[ 
    Object { label=" Login ", 
      value="Create Login Novell"}, 
    Object { label=" Login ", 
      value="Create Email Baru"}, 
    Object { label=" Login ", 
      value="Create Login Novell"} 
] 

Мой вопрос, как я могу получить только уникальный элемент (значение), Я пишу код вроде этого, но не даю мне, что мне нужно;

var unique = init.filter(function(item,i, a){ 
     return i==a.indexOf(item); 
    }); 

Мне нужно так:

[ 
    Object { label=" Login ", 
      value="Create Login Novell"}, 
    Object { label=" Login ", 
      value="Create Email Baru"}, 
] 
+0

Откуда вы знаете, есть только один уникальный предмет. вам нужно предоставить более подробную информацию, это слишком широко. –

ответ

0

Действительно, вы должны использовать фильтр, но предварительно необходимо сделать функцию, найти последний индекс значения:

var array = [{ label:" Login ", value: "Create Login Novell"}, {label: " Login ", value: "Create Email Baru"}, {label: " Login ", value: "Create Login Novell"}]; 
 
var posit = (tab, value) => { 
 
    var pos = -1; 
 
    tab.forEach((x, index) => { 
 
    if (x.value === value) pos = index; 
 
    }); 
 
    return pos; 
 
} 
 
var result = array.filter((x,i,arr) => posit(arr, x.value) === i); 
 
console.log(result);