Ошибка в коде заключается в использовании list.length в цикле for, когда list является объектом, а не массивом. В объектах нет свойства length, поэтому цикл for не будет работать корректно.
var list = {"Колумбия" : "Амазонка", "Египет" : "Нил", "Китай" : "Янцзы"}
var list_2 = []
for (let i = 0; i < Object.keys(list).length; i++) {
list_2[i] = list[Object.keys(list)[i]];
}
if (prompt() in list_2) {
alert("Есть");
} else {
alert("Нет");
}
В цикле for переменная i должна быть инициализирована значением 0: let i = 0;.
В условии цикла for нужно проверять длину массива ключей объекта list, а не list.length: i < Object.keys(list).length.
В строке list_2[i] = list[i] нужно использовать ключи объекта list для доступа к значениям: list[Object.keys(list)[i]].