首页 > 解决方案 > 如何将列表列表转换为 JavaScript 数组

问题描述

我正在从 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 页面:return 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 Datalist 从 Python 返回的 info_list 中问候数据:

    <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 页面中的 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'],…..]

现在我想遍历这个数组并只过滤那些从输入中具有正确公司名称的数组,但我无法访问这些元素,提前感谢 Nir

标签: javascriptpythonhtmlsql-server-2008

解决方案


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


推荐阅读