Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Помогите доделать скрипт (проблема с фильтрацией) (https://javascript.ru/forum/dom-window/25211-pomogite-dodelat-skript-problema-s-filtraciejj.html)

uznik73 28.01.2012 23:28

Помогите доделать скрипт (проблема с фильтрацией)
 
Делаю скрипт который делает запрос к серверу, пытаюсь фильтровать по данным введенным пользователем
Скрипт:
var selectedArray = new Array();
  var selObj = document.getElementById('clans');
  var i;
  var count = 0;
  for (i=0; i<selObj.options.length; i++) {
    if (selObj.options[i].selected) {
      selectedArray[count] = selObj.options[i].value;
      count++;
    }
  }
  alert(selectedArray);
$.getJSON("onlineusers.php", function(json){
objj = json.filter(function (x) {return x.id_position == '63'})
           .filter(function (x) {
             for (i=0; i<selectedArray.length; i++) {
            
              if (selectedArray.length>0){
                 return x.clan == selectedArray[i]}
              else {
                return x;}
             }
           });

 var tbl = "<center><table style='width:450px;'><thead><tr><th>Персонаж</th><th>Позиция</th></tr></thead><tbody>";
        for (var h = 0; h < objj.length; h++) {
          tbl += "<tr>" + 
              "<td style='font-weight:bold; width:100%;'>" +objj[h].login+"[ "+objj[h].level+" ]</td>" + 
              "<td style='color:red;width:110px;'>"+objj[h].position_name+"</td>" + 
			  "<td>";
          tbl += "</td></tr>";
        }
        tbl += "</tbody></table></center>";
        document.getElementById('result').innerHTML = tbl
});


В общем то вся загвоздка в этом участке кода:
.filter(function (x) {
             for (i=0; i<selectedArray.length; i++) {
            
              if (selectedArray.length>0){
                 return x.clan == selectedArray[i]}
              else {
                return x;}
             }
           });

Данный участок получает в переменную selectedArray массив со значениями и проверяет на совпадение в полученном массиве с сервера, но сверяется он только с первым значением...
Как заставить его проверять со всеми значениями если количество значений в переменной selectedArray заранее не известно?
:help:

nikita.mmf 30.01.2012 18:14

for (var i = selectedArray.length; i--; ) {
    if ( x.clan == selectedArray[i] ) {
        return true;
    }
}
return x;

uznik73 31.01.2012 05:54

спасибо


Часовой пояс GMT +3, время: 10:51.