我正在嘗試選擇貨幣 [0].name 但由于它不是陣列我不能這樣做。選擇它的最佳方法是什么?我是否需要將其轉換為陣列并將其存盤到變數中?在這種情況下,每次我通過函式渲染一個新國家時,我都需要清空陣列。
現在我只能通過 data.currencies.EUR.name 選擇它,但是當貨幣從 EUR 變化時,它不再起作用。你建議怎么做?
const renderCountry = function (data) {
const html = ` <article >
<img src="${data.flags.png}" />
<div >
<h3 >${data.altSpellings[2]}</h3>
<h4 >${data.region}</h4>
<p ><span>??</span>${(
data.population / 1000000
).toFixed(1)}</p>
<p ><span>???</span>${data.languages.lit}</p>
<p ><span>??</span>${data.currencies.EUR.name}</p>
</div>
</article>`;
countriesContainer.insertAdjacentHTML('beforeend', html);
countriesContainer.style.opacity = 1;
};
//AJAX CALL NR1
const getCountryAndNeighbour = function (country) {
const request = new XMLHttpRequest();
request.open('GET', `https://restcountries.com/v3.1/name/${country}`);
request.send();
request.addEventListener('load', function () {
const [data] = JSON.parse(this.responseText);
console.log(data);
//Render country 1
renderCountry(data);
//Get Neighbour Country
const [neighbour] = data.borders;
console.log(neighbour);
if (!neighbour) return;
// AJax call 2
const request2 = new XMLHttpRequest();
request2.open('GET', `https://restcountries.com/v3.1/alpha/${neighbour}`);
request2.send();
request2.addEventListener('load', function () {
const [data2] = JSON.parse(this.responseText);
console.log(data2);
renderCountry(data2);
});
});
};
getCountryAndNeighbour('Lithuania');
物件圖片
uj5u.com熱心網友回復:
您可以使用 JavaScript 函式轉換物件Object.values({}),該函式將回傳陣列中的物件值。
const currencies = {
a: 'test1',
b: 'test2',
c: 'test3',
};
const values = Object.values(currencies);
console.log(values); // ['test1', 'test2', 'test3']
console.log(values[0]); // 'test1'
uj5u.com熱心網友回復:
如果您只想要貨幣物件的第一個值,您可以在代碼中執行以下操作。它將從物件中獲取第一個鍵并提供名稱欄位的值。
${data.currencies[Object.keys(data.currencies)[0]].name}
上面的代碼將使您的功能獨立于貨幣名稱EUR。
這是假設始終可用的正確資料的基本處理。如果欄位或未定義欄位中的缺失值有任何特殊情況,您可以在使用該值之前添加相同的檢查。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/370122.html
標籤:javascript 数组
上一篇:獲取空物件的名稱
