我試圖從物件陣列中回傳所需的物件,其中陣列索引作為引數傳遞給回呼函式。例如,如果我想要陣列索引 0 處的物件,我會以這種方式呼叫 getInfo getInfo(0, data)。但是回呼函式只回傳索引而不回傳值。我嘗試使用名為myfunc 的簡單函式進行測驗,但這給了我想要的。這里有什么問題?
這是我的代碼
const getInfo = (resource, callback) => {
let request = new XMLHttpRequest();
request.addEventListener('readystatechange', () => {
if(request.readyState === 4 && request.status === 200 )
{
const data = JSON.parse(request.responseText);
console.log(data[resource]);
myfunc(resource, data[resource]);
callback(resource, data[resource]);
}
});
request.open('GET','values.json');
request.send();
};
const myfunc = (val,arr) =>{
console.log(val,arr);
}
getInfo(0, data => {
console.log(data);
getInfo(2, data => {
console.log(data);
getInfo(1, data => {
console.log(data);
});
});
});
值.json
[
{"name" : "MM", "height" : "5 ft 2 inches"},
{"name" : "DD", "height" : "5 ft 3 inches"},
{"name" : "AA", "height" : "5 ft 5 inches"}
]
控制臺輸出

uj5u.com熱心網友回復:
你的回呼只有一個引數,但是你在呼叫回呼時發送了兩個引數
getInfo(0, (index,data) => {
console.log(data);
getInfo(2, (index,data) => {
console.log(data);
getInfo(1, (index,data) => {
console.log(data);
});
});
});
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/349251.html
標籤:javascript 数组 json 目的 打回来
