Массив как ключ и значение, но значение не определено - PullRequest
0 голосов
/ 24 января 2019

Я не знаю, что не так с кодом. он работает нормально, и оба массива имеют данные. но я не понимаю, почему вывод не определен из массива var _city при передаче данных в поле city.

Как я могу это исправить?

var city = {
  _country : _city
};

Ответы [ 2 ]

0 голосов
/ 24 января 2019

Мне интересно, что вы прочитали, что заставило вас поверить, что написав то, что вы сделали, вы волшебным образом получили бы объект с одним массивом со значениями от второго ...

По сути, что происходит, когдавы сделали, когда вы

var city = {
  _country : _city
};

создали объект, который выглядит как

var city = {
  '_country' : ['your', 'array', 'of', 'cities']
};

, то есть объект с одним ключом, '_country', сопоставленный с массивом городов.

Это объясняет, почему вы получаете неопределенное ... city['any string that isn't exactly " _country"'] == undefined

Скорее всего, то, что вы хотите сделать,

var city = _country.reduce(function(acc, cur, idx) { acc[cur] = _city[idx]; return acc; }, {});

0 голосов
/ 24 января 2019

Это потому, что _country уже определено выше:

var _country = ["Afghanistan","Bahrain","Canada","Denmark","Ethiopia","France","Germany","Hong Kong","India","Japan"];

Измените определение в city на другое (может быть country):

var city = {
    country: _city,
};

И этобуду работать.

...