[英]can't iterate over an array in java script
iam 托盤遍歷 js 中的數組,但它不起作用,我總是得到長度等於 0,當我嘗試按索引訪問元素時,我得到未定義,但是當我嘗試通過 clg 打印我的數組時,它運行良好這是我的代碼
function getData(url) {
let arr = []
fetch(url).then(response => response.json()).then(data => {
for (let index = 0; index < data.length; index++) {
arr[index] = data[index].content
}
})
console.log(arr)
}
使用console.log (arr)
這是結果
[]
0: "any"
1: "any"
2: "any"
3: "any"
length: 4
[[Prototype]]: Array(0)
但是使用console.log (arr[0])
我得到了
undefined
我想從 fetch 中獲取結果並將其轉換為數組並遍歷該數組
您也應該返回Promise
和arr
。 然后在.then
中設置您想要的參考。
function getData(url) {
return fetch(url).then(response => response.json()).then(data => {
let arr = [];
for (let index = 0; index < data.length; index++) {
arr[index] = data[index].content
}
return arr;
})
}
getData(url).then(contents => { /*... do whatever you want */ });
您可以使用async/await ,這樣會更容易管理回調
async function getData(url) {
return fetch(url).then(response => response.json()).then(data => data.map(d => d.content));
}
const contents = await getData(url);
for(const content of contents){
/*... do whatever you want */
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.