[英]JavaScript, API, filtering array
我想開始創建表的函數,我在.foreach中使用if
和indexOf
,我希望如果輸入的值與tah案例名稱:germany中數組的第一項完全相同,我可以向我顯示表ony 。 我做錯了什么? 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); }
});
}
您提供的信息不夠清晰,無法給出結論性的答案。
您的if語句無效,並且始終為false。 假設countryName變量包含一個字符串,並且indexOf函數返回一個數字。 如果indexOf函數錯誤,因為它期望的是字符串而不是數組,因此也是您的用法。
if (countryName === url.indexOf([item.name])) {
createdTable.appendChild(row); }
我假設上面的代碼正在嘗試檢查countryName值是否與url中的那個相同。
我建議您嘗試使用字符串函數包括
if( url.includes(countryName)) createdTable.appendChild(row);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.