Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 24.03.2022, 15:14
Интересующийся
Отправить личное сообщение для Dmitry1988 Посмотреть профиль Найти все сообщения от Dmitry1988
 
Регистрация: 24.08.2021
Сообщений: 10

поиск id по значению параметра в json
Всем привет. В данном коде реализовано сканирование штрих кода товара и добавление его в корзину. Здесь прописано условие для первого товара. Писать так для каждого не практично, так как список товаров будет меняться. Помогите разобраться как получив значение barcode со сканера найти в goods.json такое же значение link и получить его id.

goods.json
{
  "a" : {
    "name" : "coca-cola",
    "cost" : "10",
    "description" : "описание товара 1",
    "image" : "img/Coca-Cola.jpg",
    "type" : "drink",
    "link" : "46147110",
     "pos" : "1"
  },
  "b" : {
    "name" : "кофе",
    "cost" : "10",
    "description" : "описание товара 2",
    "image" : "img/cofe.jpg",
    "link" : "goods/tb-2.html",
    "type" : "drink",
     "pos" : "46147111"
  },
  "c" : {
    "name" : "чипсы",
    "cost" : "30",
    "description" : "описание товара 3",
    "image" : "img/chips.jpeg",
    "link" : "46147112",
    "type" : "snack",
     "pos" : "3"
  },
     "d" : {
    "name" : "сендвич",
    "cost" : "40",
    "description" : "описание товара 4",
    "image" : "img/sandvich.png",
    "link" : "46147113",
    "type" : "pie",
     "pos" : "4"
  },  
  "e" : {
    "name" : "coca-cola",
    "cost" : "10",
    "description" : "описание товара 1",
    "image" : "img/Coca-Cola.jpg",
    "type" : "drink",
    "link" : "46147114",
     "pos" : "5"
  }
[/json]

[js]
$(document).ready(function() 
{
    var barcode="";
    $(document).keydown(function(e) 
    {
        var code = (e.keyCode ? e.keyCode : e.which);
        if(code==13)// Enter key hit
        {
            console.log(barcode);
                if (barcode == "46147110" ) {
                id = "a";
    if (cart[id]==undefined) {
        cart[id] = 1; 
    }
    else {
        cart[id]++; 
    }
    showCart();
    saveCart();
    barcode = ""
            }
        }
        else if(code==9)// Tab key hit
        {
             console.log(barcode);
               barcode = ""
        }
        else
        {
            barcode=barcode+String.fromCharCode(code);
        }
    });
});

Последний раз редактировалось Dmitry1988, 24.03.2022 в 15:59.
Ответить с цитированием
  #2 (permalink)  
Старый 24.03.2022, 15:30
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Dmitry1988,
Пожалуйста, отформатируйте свой код!

Для этого его можно заключить в специальные теги: js/css/html и т.п., например:
[html run]
... минимальный код страницы с вашей проблемой
[/html]

О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.
Ответить с цитированием
  #3 (permalink)  
Старый 24.03.2022, 17:16
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Dmitry1988,
что такое id?
Ответить с цитированием
  #4 (permalink)  
Старый 24.03.2022, 17:25
Интересующийся
Отправить личное сообщение для Dmitry1988 Посмотреть профиль Найти все сообщения от Dmitry1988
 
Регистрация: 24.08.2021
Сообщений: 10

Обозначение позиции товара a,b,c,d,e. строка 60 в коде
Ответить с цитированием
  #5 (permalink)  
Старый 24.03.2022, 17:28
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Сообщение от Dmitry1988
Обозначение позиции товара a,b,c,d,e.
let objJson = {
  "a" : {
    "name" : "coca-cola",
    "cost" : "10",
    "description" : "описание товара 1",
    "image" : "img/Coca-Cola.jpg",
    "type" : "drink",
    "link" : "46147110",
     "pos" : "1"
  },
  "b" : {
    "name" : "кофе",
    "cost" : "10",
    "description" : "описание товара 2",
    "image" : "img/cofe.jpg",
    "link" : "goods/tb-2.html",
    "type" : "drink",
     "pos" : "46147111"
  },
  "c" : {
    "name" : "чипсы",
    "cost" : "30",
    "description" : "описание товара 3",
    "image" : "img/chips.jpeg",
    "link" : "46147112",
    "type" : "snack",
     "pos" : "3"
  },
     "d" : {
    "name" : "сендвич",
    "cost" : "40",
    "description" : "описание товара 4",
    "image" : "img/sandvich.png",
    "link" : "46147113",
    "type" : "pie",
     "pos" : "4"
  },
  "e" : {
    "name" : "coca-cola",
    "cost" : "10",
    "description" : "описание товара 1",
    "image" : "img/Coca-Cola.jpg",
    "type" : "drink",
    "link" : "46147114",
     "pos" : "5"
  }
};
let barcode = "46147110";

function findId(barcode)
{
   for(let [id, obj] of Object.entries(objJson)){
       if(obj.link == barcode) return id
   }
}
let id = findId(barcode);
alert(id);
Ответить с цитированием
  #6 (permalink)  
Старый 24.03.2022, 17:34
Интересующийся
Отправить личное сообщение для Dmitry1988 Посмотреть профиль Найти все сообщения от Dmitry1988
 
Регистрация: 24.08.2021
Сообщений: 10

Спасибо, то что надо
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка при чтении json полученного через ajax ishurgaya Общие вопросы Javascript 7 10.12.2018 09:20
Не могу распарсить JSON. gorenie jQuery 3 29.11.2013 22:26
поиск подструктуры в массиве json данных amt779 Общие вопросы Javascript 4 07.06.2013 18:53
Поиск тега по значению его атрибута. frant32 Events/DOM/Window 12 03.06.2012 21:30
jQuery. Обработка ошибок и JSON. mma_mma jQuery 3 19.07.2010 12:10