JavaScript,API,过滤数组

时间:2017-05-24 08:43:57

标签: javascript arrays sorting

我想在.foreach中使用ifindexOf来启动创建表格的函数,我希望如果输入的值与输入的值完全相同,则会向我显示表格在tah案例名称中的第一项数组:德国。 我做错了什么? https://scr.hu/eyjnr0

function showCountriesList(resp) {

 var url = 'https://restcountries.eu/rest/v2/name/';
 var createdTable = createNewTable();
 var countryName = $('#country-name').val();

 resp.forEach(function(item) {
  var row = document.createElement('tr');
  row.innerHTML = `
   <td><img style="width: 60px; height: 60px; object-fit: cover" src=${item.flag}></img></td>
   <td>${item.name}</td>
   <td>${item.capital}</td>
   <td>${item.alpha2Code}</td>
   <td>${item.timezones}</td>
  `;
   if (countryName === url.indexOf([item.name])) {
    createdTable.appendChild(row); }
 });

}

1 个答案:

答案 0 :(得分:0)

您提供的信息不够明确,无法给出明确的答案。

您的if语句无效且始终为false。假设 countryName 变量包含一个字符串,indexOf函数返回一个数字。 如果indexOf函数错误,你的用法也是错误的,因为它期望字符串不是数组。

if (countryName === url.indexOf([item.name])) {
createdTable.appendChild(row); }

我假设上面的代码试图检查countryName值是否与url中的值相同。

我建议您尝试使用字符串函数includes

if( url.includes(countryName)) createdTable.appendChild(row);