지오코더를 이용하여 반복한 위치의 인포 윈도우 표시하기

지도/로컬 API에 대한 문의게시판입니다.
안녕하세요 저는 중부대학교 고양캠퍼스에서 연계전공 프로젝트를 제작중인 학생입니다.
라라벨 기반으로 하고있구요…
저희 프로젝트중 제가 궁금한 것은
상품위치를 지도에 보여주며 마커에 텍스트를 표시하는 부분입니다.

var positions = $(’.maparry’);
var rodcount = {{count($road)}};
console.log(rodcount);
var add = [];
for(i=0; i<positions.length;i++){
add.push(positions[i].value);
}
console.log(add);
// 주소로 좌표를 검색합니다
for(i=0; i <add.length; i++){
console.log(add[i]);
geocoder.addressSearch(add[i], function(result, status) {

    // 정상적으로 검색이 완료됐으면
    if (status === kakao.maps.services.Status.OK) {

      var coords = new kakao.maps.LatLng(result[0].y, result[0].x);

      // 결과값으로 받은 위치를 마커로 표시합니다
      var marker = new kakao.maps.Marker({
        map: map,
        position: coords
      });
      // 인포윈도우로 장소에 대한 설명을 표시합니다
      var infowindow = new kakao.maps.InfoWindow({

        content: '<div style="width:150px;text-align:center;padding:6px 0;">'+ add[0] +'</div>'
      });
      infowindow.open(map, marker);
      // 지도의 중심을 결과값으로 받은 위치로 이동시킵니다
      map.setCenter(coords);
    }
  });
}

위와 같은 코드를 이용하여 상품을 등록했을때 입력된 위치를 지도에 모두 띄워주게 되는데 인포 윈도우에 들어갈 말을 배열에 담아서 반복문으로 돌려서 나타내야 하는데 어떻게 하는게 좋을까요?..여러 방법을 사용해봤는데 잘 안되네요 ㅠ 조언이 필요합니다 ㅠ!!

for문 내에서 스코프가 유지되지 않아서 강제해주어야 합니다.
방법은 IIFE 함수를 사용해서 스코프를 만들어 주거나
반복문을 forEach문으로 대체하거나
es6문법 let/const를 사용해서 스코프를 유지시켜주세요.

add.forEach(address => {
    geocoder.addressSearch(address, function(result, status) {
        console.log(address); // 값 출력
        /* .... */
    });
});


for(let idx=0; idx<add.length; idx++) {
    let address = add[idx];
    geocoder.addressSearch(address, function(result, status) {
        console.log(address); // 값 출력
        /* .... */
    });
};