我認爲這個問題是真的清楚。這是我的代碼:如何通過真正的價值,而迭代循環?
// Add markers for each spot
for(var spot of spots) {
var spotId: number = +spot.id;
console.log(spotId);
// Add marker for current spot
L.marker([spot.latitude, spot.longitude], {icon: this.mapService.getSchoolIcon() })
.addTo(this.map)
.on('click',() => console.log('CLICKED: ' + spotId) );
}
而且這是在控制檯輸出,如果我點擊的所有引腳:
1
2
3
4
CLICKED: 4
CLICKED: 4
CLICKED: 4
CLICKED: 4
如果你正在寫打字稿,爲什麼不使用'let'? https://www.typescriptlang.org/docs/handbook/variable-declarations.html – crashmstr
由於JS沒有塊範圍,唯一的功能範圍,您只創建'spotId'一次,然後循環使用的所有其他迭代(並修改)相同的'spotId'。請參閱Sushanth的答案。 – CoconutFred
這是因爲關閉,要打印相應的數字,你需要做以下任一修改, - 你可以使用'let'而不是'var' - 或者你可以使用自動執行匿名函數 –