как читать другие javascript JSON категории - PullRequest
0 голосов
/ 01 августа 2020

Я не знаю, как это сделать,

У меня есть l oop для элемента списка товаров, но я действительно не знаю, как связать товар в магазине на название магазина . Я пробовал много способов, но я действительно не знаю, как связать товар с магазином.
если productList.ShopId = shopList.id, то используйте это shopList.title
НАЗВАНИЕ МАГАЗИНА = shopList.title

const getProductList = function (productItem) {
    const productListRender = 
    $('<div>').append($('<span>', {
        html: shopName() <<<< SHOP NAME
    }));

    $.each(data.shopList), function shopName() {
        this.text(shopList.title);
    };
        
    return productListRender;
}
const $product = $('#List')
$.each(data.productList, function (index, data) {
    $product.append(getProductList(data));
});

Данные JS ниже:

var data = {
    productList: [
        {
            id: "62276197-6059-4c21-9b40-c5b1d277e85d",
            link: "javascript:void(0)",
            imgurl: "/img/upload/png/joyacart_000001_12032019.png",
            text: 'Product 001',
            goldMedal: false,
            newItem: true,
            newShop: true,
            freeDelivery: true,
            ShopId: '5cfb048c-86e8-4d2d-85bf-e4e9e1effdcb'
        },
        {
            id: "59de8216-052d-4e51-9f7d-7e96642ded62",
            link: "javascript:void(0)",
            imgurl: "/img/upload/png/joyacart_000002_12032019.png",
            text: 'Product 002',
            goldMedal: true,
            newItem: false,
            newShop: true,
            freeDelivery: true,
            ShopId: '10eb4250-47d6-41ad-a429-f65e05836f26'
        },
        {
            id: "59de8216-052d-4e51-9f7d-7e96642ded62",
            link: "javascript:void(0)",
            imgurl: "/img/upload/png/joyacart_000003_12032019.png",
            text: 'Product 003',
            goldMedal: true,
            newItem: false,
            newShop: true,
            freeDelivery: true,
            ShopId: '10eb4250-47d6-41ad-a429-f65e05836f26'
        }],

    shopList: [{
        id: '5cfb048c-86e8-4d2d-85bf-e4e9e1effdcb',
        title: 'Shop 001'
    },
    {
        id: '10eb4250-47d6-41ad-a429-f65e05836f26',
        title: 'Test Shop'
    }]
}

Ответы [ 2 ]

2 голосов
/ 01 августа 2020

Уточнить shopName как:

function shopName(shopId) {
  // find the right shop by comparing shopId with each `shop.id`
  // uses optional chaining to prevent errors
  // returns undefineds if no match is found
  return shopList.filter(shop => shop.id === shopId)?.[0]?.title;
}

const shopList = [{
    id: '5cfb048c-86e8-4d2d-85bf-e4e9e1effdcb',
    title: 'Shop 001'
  },
  {
    id: '10eb4250-47d6-41ad-a429-f65e05836f26',
    title: 'Test Shop'
  }]

console.log(shopName('10eb4250-47d6-41ad-a429-f65e05836f26'));
console.log(shopName('222'));
1 голос
/ 01 августа 2020

в ваших данных вроде все в порядке. Единственное, что я вижу, это то, что в вашем методе сравнения произошел сбой. Вы пытались сравнить их не со знаком равенства, а рассматривать их как строку.

вы можете увидеть эту ссылку для справки ..

https://www.tutorialspoint.com/What-is-the-best-way-to-compare-two-strings-in-JavaScript

...