Вы используете словарь для хранения своих товаров, поэтому лучший выбор, чтобы проверить, есть ли товар в корзине, - это перебирать ключи этого словаря.Вы можете просто использовать Object.keys(obj)
, чтобы получить массив с ключами, а затем проверить, есть ли нужный продукт.
Имейте в виду, что вы не можете использовать books
для поиска, только если вы ранее инициализировалиэта переменная выглядит следующим образом: let books = "books"
.В противном случае вы должны проверить строку «books», поскольку при сравнении будет выполнено автоматическое преобразование.
amazonBasket = {
glasses: 1,
books: 2,
floss: 100
}
function checkBasket(basket, lookingFor) {
let inBasket = Object.keys(basket);
let itemFound = false;
for (let i = 0; i < inBasket.length; ++i) {
if (lookingFor === inBasket[i]) {
itemFound = true;
break;
}
}
if (basket.hasOwnProperty(lookingFor)) {
console.log("This item is in the basket")
} else {
console.log("This item is not in the basket")
}
}
checkBasket(amazonBasket, "glasses");
checkBasket(amazonBasket, "soda");
Конечно, это не лучшее, что вы можете сделать.Словари в java-скрипте имеют метод hasOwnProperty
, который проверяет, есть ли в словаре определенный ключ.Ниже у вас есть рабочий пример использования этого.
amazonBasket = {
glasses: 1,
books: 2,
floss: 100
}
function checkBasket(basket, lookingFor) {
if (basket.hasOwnProperty(lookingFor)) {
console.log("This item is in the basket")
} else {
console.log("This item is not in the basket")
}
}
checkBasket(amazonBasket, "glasses");
checkBasket(amazonBasket, "soda");
Ура!