簡體   English   中英

無法遍歷 java 腳本中的數組

[英]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 中獲取結果並將其轉換為數組並遍歷該數組

您也應該返回Promisearr 然后在.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM