我想在.foreach中使用if
和indexOf
来启动创建表格的函数,我希望如果输入的值与输入的值完全相同,则会向我显示表格在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); }
});
}
答案 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);