Машинописное имя ключа в Object

Причина, по которой программа переходит в бесконечный цикл, связана с тем, что флаг неудачного ввода std::cin установлен из-за сбоя ввода. Необходимо сделать это, чтобы очистить этот флаг и отбросить плохой вход из входного буфера.

//executes loop if the input fails (e.g., no characters were read)
while (std::cout << "Enter a number" && !(std::cin >> num)) {
    std::cin.clear(); //clear bad input flag
    std::cin.ignore(std::numeric_limits::max(), '\n'); //discard input
    std::cout << "Invalid input; please re-enter.\n";
}

См. C ++ FAQ для этого и другие примеры, включая добавление минимальный и / или максимальный в условие.

Другим способом было бы получить ввод как строку и преобразовать его в целое число с std::stoi или другим методом, который позволяет проверять преобразование.

0
задан Maciej Papurzyński 15 January 2019 в 21:22
поделиться

2 ответа

Вы можете использовать Object.values ​​() :

пример ниже:

var foo = {
   "currency": "dollar"
};
var bar = "currency";


console.log(Object.values(foo).indexOf(bar) >= 0); //false
console.log(Object.keys(foo).indexOf(bar) >= 0); //true
0
ответ дан Govind Parashar 15 January 2019 в 21:22
поделиться
var foo = {
   "currency": "dollar"
};
var bar = "currency";

Проверьте, существует ли ключ:

if (foo[bar])

Или:

if (foo.hasOwnProperty(bar))

Проверьте, имеет ли свойство правильное значение

if (foo[bar] == "dollar")
0
ответ дан Aioros 15 January 2019 в 21:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: