Доброй ночи. Подскажите пожалуйста, как мне правильно вывести содержимое JSON на основании ключа, который хранится в LocalStorage.
API возвращает мне такого вида JSON
let goods = [
{
"id":"1",
"name":"Pizza",
"cost":3
},
{
"id":"2",
"name":"Cola",
"cost":5
},
{
"id":"3",
"name":"Tomatoes",
"cost":6
}]
В LocalStorage я сохранил id товара и его количество.
{1: 3, 2: 2, 3: 1}
Ключем является id а значение это количество товара.
Написал два метода, один добавляет в LocalStorage id и количество, второй считывает из LocalStorage.
function addToCart(id) {
if (cart[id]!=undefined) {
cart[id]++;
}
else {
cart[id] = 1;
}
localStorage.setItem('cart', JSON.stringify(cart) );
}
function getCartFromLS() {
return JSON.parse(localStorage.getItem('cart'));
}
Дальше пробую вытащить по полученому id из LocalStorage информацию по товару
let cart = getCartFromLS();
for(let key in cart){
console.log(goods[key].name);
}
Получаю вывод на консоль.
Cola
Tomatoes
Uncaught TypeError: Cannot read property 'name' of undefined
Выводит только два объекта на третий ругается. И не совпадают по id.
Как правильно сформировать вывод? Что бы выводило по id из LocalStorage?