2015-03-27 3 views
0

Так у меня есть массив объектов называется Banker и у меня есть массив с именем remove_banker_id,Сравнить два массива получить уникальные значения Javascript

так в моем коде remove_banker_id = [11, 99]. Мой объект банкира banker.id имеет 11 и 99, и я не хочу включать их в свой третий массив, так как я делаю это?

Мой текущий код имеет это в моем файла JavaScript

$.each(data, function(index, banker) { 
     $.each(lender_banker_id_array, function(index, banker_id) { 
     if(parseInt(banker_id) !== banker.id) { 
      banker_object 
      .append($('<option>', {value: banker.id, html: banker.name })) 
      .removeAttr('disabled'); 
     } 
     }) 
    }); 

Поэтому в основном если lender_banker_id_array в объекте банкира, не присоединяют его. Но с этим кодом он работает неправильно. Как я могу решить эту

ответ

1

Попробуйте использовать функцию JQuery утилита $.inArray()

http://api.jquery.com/jquery.inarray/

Он возвращает индекс значения в массиве. Он возвращает -1, если массив не содержит значения.

$.each(data, function(index, banker) { 
    if($.inArray(banker.id, lender_banker_id_array) == -1) { 
     banker_object.append($('<option>', { 
      value: banker.id, 
      html: banker.name 
     })).removeAttr('disabled'); 
    } 
}); 
+0

аккуратный, сладкий ответ @nathan. thnks bruv –

+0

Я настоятельно рекомендую использовать [Array.prototype.indexOf()] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf), это быстрее, а также просто лучше использовать собственную функцию против не-родной. – Downgoat

+0

@ vihan1086 он, вероятно, быстрее, но он не поддерживается в IE <9. Поэтому, если вы хотите иметь широкую поддержку браузера, вам придется использовать полиполк или что-то еще, и в какой-то момент компромисс не стоит лишнего миллисекунды , – Nathan

Смежные вопросы