Во-первых, вы в else через
break outer;
прерываете выполнения цикла, и у вас отрабатывает только элемент array[0][0].
Во-вторых, что вы здесь
let j in i
собрались перебирать?
Надо вот так:
outer: for (let i in array) {
console.log(array[i])
for(let j in array[i]) {
console.log(array[i][j])
if(city === array[0][j]) {
alert('Казахстан')
break outer;
} else if (city === array[1][j]) {
alert('Россия')
break outer;
} else if (city === array[2][j]) {
alert('Китай')
break outer;
} else if (city === array[3][j]) {
alert('США')
break outer;
} else {
alert('Такого города не найдено')
}
}
}
Да и alert('Такого города не найдено') не обязательно вызывать при каждом проходе. Можно сделать так:
var gotCity = false
outer: for (let i in array) {
console.log(array[i])
for(let j in array[i]) {
console.log(array[i][j])
if(city === array[0][j]) {
gotCity = city
alert('Казахстан')
break outer;
} else if (city === array[1][j]) {
alert('Россия')
gotCity = city
break outer;
} else if (city === array[2][j]) {
alert('Китай')
gotCity = city
break outer;
} else if (city === array[3][j]) {
alert('США')
gotCity = city
break outer;
}
}
}
if (gotCity === false) {
alert('Такого города не найдено');
}