Как отфильтровать повторяющиеся имена с возвращенными данными JSON - PullRequest
0 голосов
/ 09 ноября 2019

enter image description here У меня есть несколько данных с одним именем из ответа JSON. Я хочу написать функцию, которая отфильтровывает данные с тем же именем в моем списке опций.

       const select = document.getElementById('brand');
/**===============Fetch requests=========== */

        fetch("http://makeup-api.herokuapp.com/api/v1/products.json")
        .then((resp) => resp.json())
        .then(function(data) {
            let products = data;
            return products.map(function(product) {
            console.log(product.brand);
          })
        })
        .catch(function(error) {
          console.log(error);
        });

        fetch("http://makeup-api.herokuapp.com/api/v1/products.json")
         .then((resp) => resp.json())
        .then((resp) => generateOptions(resp))

/*===========Helper Functions====================== */
      function generateOptions(data) {
        let products = data;
        const options = products.map(item => `
          <option value='${item.brand}'>${item.brand}</option>
        `).join('');
        select.innerHTML = options;
        
      }

Ответы [ 2 ]

0 голосов
/ 09 ноября 2019

воспользоваться новой картой

const duplicates = [['dior', 'data'], ['iman', 'data'], ['dior, iman']]
const dedup = new Map(duplicates)
0 голосов
/ 09 ноября 2019

Если я правильно понимаю, ваши вопросы состоят в том, что ответ содержит несколько продуктов с одинаковым именем brand.

Существует несколько способов сделать это. Если ожидание выпадающего списка состоит в том, чтобы просто содержать бренды, то новый API может просто вернуть все бренды и соответствующие метаданные. Так что get brands вернет массив уникальных объектов бренда.

Если вы хотите сделать это с имеющимся у вас запросом, вы можете перебрать ответ и создать отдельный Set названий брендов. ,Установите в JavaScript: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set

Набор не позволит вам иметь дубликаты ключей. Затем вы можете перебрать набор для создания опций выбора HTML.

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