JavaScript、API、过滤数组

JavaScript、API、过滤数组,javascript,arrays,sorting,Javascript,Arrays,Sorting,我想启动创建me表的函数,iam在.foreach中使用if和indexOf,我希望在输入值与tah案例名称中的第一个数组项完全相同的情况下显示表ony:德国。 我做错了什么 函数showCountriesList(resp){ var url='1〕https://restcountries.eu/rest/v2/name/'; var createdTable=createNewTable(); var countryName=$('#country name').val(); 负责人(职能

我想启动创建me表的函数,iam在.foreach中使用
if
indexOf
,我希望在输入值与tah案例名称中的第一个数组项完全相同的情况下显示表ony:德国。 我做错了什么

函数showCountriesList(resp){
var url='1〕https://restcountries.eu/rest/v2/name/';
var createdTable=createNewTable();
var countryName=$('#country name').val();
负责人(职能(项目){
var行=document.createElement('tr');
row.innerHTML=`
${item.name}
${item.capital}
${item.alpha2Code}
${item.timezones}
`;
if(countryName==url.indexOf([item.name])){
createdTable.appendChild(行);}
});
}

您提供的信息不够清楚,无法给出结论性答案

您的if语句无效,并且将始终为false。假设countryName变量包含一个字符串,indexOf函数返回一个数字。 如果indexOf函数期望的是字符串而不是数组,那么也可以使用该函数

if (countryName === url.indexOf([item.name])) {
createdTable.appendChild(row); }
我假设上面的代码试图检查countryName值是否与url中的值相同

我建议您尝试使用string函数

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

这不是完整的代码*我仍然不明白问题是什么,所以这部分代码正确吗
if(countryName==url.indexOf([item.name]){createdTable.appendChild(row);}
?如果countryName的值与API的第一项相同(在这种情况下,它将启动函数createdTablebeacuse,而不使用
if
,您可以输入例如“ger”你们从服务器得到所有不同的响应,所有列表都显示在表中。如果我输入值“German”,我只想看到关于德国的信息,如果我输入“ger”,它不是全名,所以我什么都不想看到
if (countryName === url.indexOf([item.name])) {
createdTable.appendChild(row); }