如何将列表列表转换为JavaScript数组

时间:2019-05-31 09:04:48

标签: javascript python html sql-server-2008

我正在从Python中的银行帐户的Sql-server数据库列表中检索

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

然后我将其呈现到HTML页面:    返回render(request,'app / reporting.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> 

他们两个都问候使用HTML数据列表从info_list返回的数据从Python返回:

    <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>

现在要等待我从公司输入中获得的值,我想仅在我能够执行的帐户ID输入中显示相关输入,并基于输入,仅在info_list中显示仅包含相关条目的HTML DataTalbe。用户在公司上选择。

我尝试了以下操作,在HTML页面的Form标签中:

<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'],…..]

现在,我想遍历此数组并仅从输入中过滤具有正确公司名称的那些,但是我无法访问这些元素, 提前致谢, 尼尔

1 个答案:

答案 0 :(得分:0)

为什么不能访问该元素?如果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'));