Получить несколько элементов по идентификатору nodejs - PullRequest
0 голосов
/ 03 апреля 2020

У меня есть страница json примерно так:

{
    "results": [
        {
            "ID": 8695,

            "Active": 1,
            "condition": "new",
            "url_image": "https://tdiscount.tn/img/p/2/1/5/4/4/21544.jpg"
        },
        {
            "ID": 8695,

            "Long_description": "",
            "Active": 1,
            "condition": "new",
            "url_image": "https://tdiscount.tn/img/p/2/1/5/4/2/21542.jpg"
        },
        {
            "ID": 8696,

            "Active": 1,
            "condition": "new",
            "url_image": "https://tdiscount.tn/img/p/2/1/5/4/6/21546.jpg"
        },
        {
            "ID": 8696
            "Active": 1,
            "condition": "new",
            "url_image": "https://tdiscount.tn/img/p/2/1/5/4/5/21545.jpg"
        }
    ]
}

Идентификатор всегда один и тот же, но изменяется url_image.

Мне нужно заполнить список url_image в массиве с тем же идентификатором

Вот где я до сих пор дошел:

 getProductByCategory: (id_category,callback) => {
        db.query(
         'SELECT p.id_product AS ID,m.name Manufacturer,pl.name AS Product_name,p.id_category_default AS Default_Category, (CASE    WHEN p.id_tax_rules_group= 13 THEN ROUND(p.price * 1.19 , 3) WHEN p.id_tax_rules_group= 15  THEN ROUND(p.price * 1.07 , 3)  END)AS Price_tax_incl , p.on_sale AS On_sale, p.reference as Reference, s.quantity as Quantity, (CASE  WHEN s.quantity> 0 THEN pl.available_now  ELSE "Ce produit n`est plus disponible" END) as available, pl.description_short AS Short_description, pl.description as Long_description , p.active as Active,p.condition ,concat( "https://tdiscount.tn/img/p/",mid(im.id_image,1,1),"/", if(length(im.id_image)>1,concat(mid(im.id_image,2,1),"/"),""),if (length(im.id_image)>2,concat(mid(im.id_image,3,1),"/"),""),if(length(im.id_image)>3,concat(mid(im.id_image,4,1),"/"),""),if(length(im.id_image)>4,concat(mid(im.id_image,5,1),"/"),""), im.id_image, ".jpg" ) AS url_image FROM ps_product p INNER JOIN ps_product_lang pl ON p.id_product = pl.id_product LEFT JOIN ps_manufacturer m ON (p.id_manufacturer = m.id_manufacturer) LEFT JOIN ps_image im ON p.id_product = im.id_product LEFT JOIN ps_product_attribute pa ON (p.id_product = pa.id_product) LEFT JOIN ps_stock_available s ON (p.id_product = s.id_product) WHERE pl.id_lang=1 and p.active = 1 and p.id_category_default = ?' ,
            [id_category],
            (error,results,fields)=>{
                if(error){
                    return callback(error);
                }
                return callback(null,results);
            },
        );
    },

Мне нужен способ получить несколько элементов по идентификатору

1 Ответ

0 голосов
/ 03 апреля 2020

Вы можете использовать .filter() в массиве результатов, а затем .map(), чтобы выбрать только URL изображения:

const pages = require('./pages.json')

function getElements(id) {
  return pages.results
    .filter(page => page.ID === id)
    .map(page => page.url_image)
}

getElements(8696)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...