我一直在這個問題上花費太多時間...所以我想聲明一個名爲「位置」的2D數組,可以在其他函數中使用。使用解析代碼在函數「init」中工作,我試圖創建一個簡單的函數稱爲「解析」,以避免每次我想要使用位置數組重複長解析過程。除了當我在其他函數console.log(職位),它總是返回一個空的數組= = []。 爲什麼「位置」在解析函數中沒有被修改,我該如何做?這是所使用的代碼:全局數組不能在javascript函數中修改
var positions = [];
parsing();
init();
function parsing() {
fetch('Petit_film_256_atomes.txt').then(response => response.text()).then(text => {
const arr = text.split('\n')
.map(line => line.trim())
.map((arr) => arr.split(' '))
.map(([size, x, y, z]) => ({
size: Number(size),
x: Number(x),
y: Number(y),
z: Number(z)
}));
while (arr.length > 0) {
positions.push(arr.splice(0, size).slice(2));
}
})
}
因爲你有一個異步調用,並且像ti一樣是同步的。 – epascarello
只需在'then'回調中放入'init'調用。 – Bergi