24.03.2022, 15:14
|
Интересующийся
|
|
Регистрация: 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.
|
|
24.03.2022, 15:30
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,109
|
|
Dmitry1988,
Пожалуйста, отформатируйте свой код!
Для этого его можно заключить в специальные теги: js/css/html и т.п., например:
[html run]
... минимальный код страницы с вашей проблемой
[/html]
О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.
|
|
24.03.2022, 17:16
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,109
|
|
Dmitry1988,
что такое id?
|
|
24.03.2022, 17:25
|
Интересующийся
|
|
Регистрация: 24.08.2021
Сообщений: 10
|
|
Обозначение позиции товара a,b,c,d,e. строка 60 в коде
|
|
24.03.2022, 17:28
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,109
|
|
Сообщение от 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);
|
|
24.03.2022, 17:34
|
Интересующийся
|
|
Регистрация: 24.08.2021
Сообщений: 10
|
|
Спасибо, то что надо
|
|
|
|