Как преобразовать список списка в массив JavaScript - PullRequest
0 голосов
/ 31 мая 2019

Я получаю из базы данных Sql-сервера список банковских счетов в Python

Alllist=select_from_db_service(sql,[1],organization)
   if len(Alllist)>0:
        for row in Alllist:      
           info_list.append((list(row)))

, затем я отображаю его на HTML-странице: return render (request, 'app / reports.html',

{'info_list':info_list,'start_date':start_date,'end_date':end_date})

на странице HTML у меня есть два ввода из выпадающего списка Company и Account_id

<input  type="text" list='List_of_Companies' data-search-in="Company" id="Input1" name="Companyname"  placeholder="Choose a Company"  value="{{ Company}}" >

<input  type="text" list='List_of_Accounts' data-search-in="Account" id="Input2" name="Accountname"  placeholder="Choose an Account ID" value="{{ Account_Id}}" hidden>
        <br>  <br> 

Оба они приветствуют данные из info_list, возвращаемого из Python с использованием HTML Datalist:

    <datalist id="List_of_Companies">
 <select id="filenamelist" size="5"  class="select">
     {% for Company in  info_list %}
     <option value="{{ Company.3 }}">{{  Company.3 }}</option>
     {% endfor %}
     </select>
 </datalist>




   <datalist id="List_of_Accounts">
 <select id="filenamelist" size="5"  class="select">
     {% for Company in  info_list %}
     <option value="{{ Company.0 }}" data-value="{{  Company.3 }}" > {{  Company.3 }}</option>
     {% endfor %}
     </select>
 </datalist>

Теперь в ожидании значений, которые я получаю из входных данных компании, я хочу представить только соответствующие входные данные для ввода идентификатора учетной записи, которые я могу сделать, и показать HTML-тег данных с только соответствующими записями в базе данных info_list на входах.пользователь выбирает компанию.

Я попробовал следующее, На HTML-странице в теге формы:

<input  type="text" id="DataTableInput" value="{{ info_list}}" hidden />

В JavaScript я попытался:

var dataSet = document.getElementById("DataTableInput").value; 
console.log('DataSet' + dataSet)

вывод выглядит так:

DataSet[['39 XXX, 'EUR', 'CS', Company_name', 4, '01-jan-2019'], ['12 XXX',, 'USD, 'CS', 'Company_name2', 5, '01-jan-2019'],
['34 XXX', 'USD', 'CS', Company_name2', 5, '01-jan-2019'],…..]

Теперь я хочу перебрать этот массив и отфильтровать только те, которые имеют правильное название компании из входных данных, но я не могу получить доступ к элементам, заранее спасибо, Nir

1 Ответ

0 голосов
/ 31 мая 2019

Почему вы не можете получить доступ к элементу?если console.log(dataSet[2]) даст вам название компании, вы сможете сделать что-то вроде этого:

function filterByCompanyName(array, name) {
  //assuming index 3 is always the company name of course
  return array.filter(item => item[3] == name);
}

let givenArray = [['39 XXX', 'EUR', 'CS', 'Company_name', 4, '01-jan-2019'], ['12 XXX', 'USD', 'CS', 'Company_name2', 5, '01-jan-2019'],
['34 XXX', 'USD', 'CS', 'Company_name2', 5, '01-jan-2019']];

console.log(filterByCompanyName(givenArray, 'Company_name2'));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...