Не добавляется весь список в Input type = "text"

Мне нужно добавить список моих городов из массива объектов на страницу. Но столкнулся с проблемой, что добавляется только последний город, причем та же функция, только с console.log добавляет весь список в консоль, а не только последний.

Вот код в JS:

function CityMap(str) {

    function CityMapRecording(str) {
        [this.city, this.latitude, this.longitude] = str.split(" ,");
    }
    this.list = [];
    str.split(";").forEach(row => {
        this.list.push(new CityMapRecording(row));
    });
}

CityMap.prototype.citiesList = function () {
    return this.list.map(function (k) {
      return k.city;
    });
  };
  window.addEventListener("load", function (){
    document.getElementById("CitiesList").innerHTML = objCityMap.citiesList().forEach(function (element) {
        return document.getElementById("CitiesList").value = element;
      });
  },false);
var objCityMap = new CityMap("Nashville, TN ,36.17 ,-86.78;New York, NY ,40.71 ,-74.00;Atlanta, GA ,33.75 ,-84.39;Denver, CO ,39.74 ,-104.98;Seattle, WA ,47.61 ,-122.33;Los Angeles, CA ,34.05 ,-118.24;Memphis, TN , 35.15 ,-90.05");
console.log(objCityMap.list);
objCityMap.citiesList().forEach(element => console.log(element));

Возможно что-то не так с HTML, поэтому вот и он:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <link rel="stylesheet" href="styles.css">
</head>

<body>
    <div class="container">
        <div class="head">
            <h1>Welcome to Pindosia!</h1>
        </div>
        <form class="form" action="#">
            <div class="firstColumn">
                <div class="cityList">
                    <div class="cityListContent"><p>Cities list:</p></div>
                    <div class="cityListContent"><p><input type="text" id="CitiesList" readonly ></input></p></div>                        
                </div>
            </div>
        </form>
    </div>
    <script src="stackOverFlow.js"></script>
</body>

</html>

В общих чертах: мне нужно, чтобы при загрузке страницы показывало весь список городов, а показывает только последний город.


Ответы (1 шт):

Автор решения: Denis640Kb

Для табличного отображения - добавил таблицу (Если надо будет добавлять параметры к ним).
Если нет то можно заменить просто на div. Пример:

    function CityMap(str) {

        function CityMapRecording(str) {
            [this.city, this.latitude, this.longitude] = str.split(" ,");
        }
        this.list = [];
        str.split(";").forEach(row => {
            this.list.push(new CityMapRecording(row));
        });
    }

    CityMap.prototype.citiesList = function () {
        return this.list.map(function (k) {
            return k.city;
        });
    };
    window.addEventListener("load", function (){
        document.getElementById("CitiesList").innerHTML = objCityMap.citiesList().forEach(function (element) {
            return document.getElementById("CitiesList").value = element;
        });
    },false);
    var objCityMap = new CityMap("Nashville, TN ,36.17 ,-86.78;New York, NY ,40.71 ,-74.00;Atlanta, GA ,33.75 ,-84.39;Denver, CO ,39.74 ,-104.98;Seattle, WA ,47.61 ,-122.33;Los Angeles, CA ,34.05 ,-118.24;Memphis, TN , 35.15 ,-90.05");
    objCityMap.citiesList().forEach(function (c) {
        let newDiv = document.createElement('tr');
        newDiv.innerText = c;
        document.getElementById('city').appendChild(newDiv);
    });
<body>
<div class="container">
    <div class="head">
        <h1>Welcome to Pindosia!</h1>
    </div>
    <form class="form" action="#">
        <div class="firstColumn">
            <div class="cityList">
                <div class="cityListContent"><p>Cities list:</p></div>
                <div class="cityListContent"><p><input type="text" id="CitiesList" readonly ></input></p></div>
            </div>
        </div>
    </form>
    <div>
        <table id="city">
        </table>
    </div>
</div>
<script src="stackOverFlow.js"></script>
</body>

→ Ссылка