Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 21.10.2018, 12:17
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,123

Aetae,
ок
let categories = [
			{"id": 1, "title": "Комплектующие", "pid": null},
			{"id": 2, "title": "Ноутбуки", "pid": null},
			{"id": 3, "title": "Сумки под ноутбуки", "pid": 2},
			{"id": 4, "title": "Сумки мужские", "pid": 3},
			{"id": 5, "title": "Cумки мужские синие", "pid": 4},
			{"id": 6, "title": "Жесткие диски", "pid":1},
			{"id": 7, "title": "Кабеля", "pid":1},
			{"id": 8, "title": "Кабеля HDMI", "pid": 7},
			{"id": 9, "title": "Мониторы", "pid": null},
			{"id": 10, "title": "Кабеля HDMI mini", "pid": 8},
			{"id": 11, "title": "Сумки женские", "pid": 3},
			{"id": 12, "title": "Сумки мужские синие с рюшечками", "pid": 5}
    	];

let targets = [{"id": 7, "title": "Кабеля", "pid":1},
			{"id": 8, "title": "Кабеля HDMI", "pid": 7},
			{"id": 9, "title": "Мониторы", "pid": null}]

let arrOut =  categories.filter(e => targets.every(k => k.id != e.id));

console.log(arrOut)
Ответить с цитированием
  #12 (permalink)  
Старый 21.10.2018, 12:36
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,589

рони, ну да, как-то так:
let categories = [
    {"id": 1, "title": "Комплектующие", "pid": null},
    {"id": 2, "title": "Ноутбуки", "pid": null},
    {"id": 3, "title": "Сумки под ноутбуки", "pid": 2},
    {"id": 4, "title": "Сумки мужские", "pid": 3},
    {"id": 5, "title": "Cумки мужские синие", "pid": 4},
    {"id": 6, "title": "Жесткие диски", "pid":1},
    {"id": 7, "title": "Кабеля", "pid":1},
    {"id": 8, "title": "Кабеля HDMI", "pid": 7},
    {"id": 9, "title": "Мониторы", "pid": null},
    {"id": 10, "title": "Кабеля HDMI mini", "pid": 8},
    {"id": 11, "title": "Сумки женские", "pid": 3},
    {"id": 12, "title": "Сумки мужские синие с рюшечками", "pid": 5},
  ];

  let targets = [{"id": 7, "title": "Кабеля", "pid":1},
                 {"id": 8, "title": "Кабеля HDMI", "pid": 7},
                 {"id": 9, "title": "Мониторы", "pid": null},]

  function filterObjectArray(array, exclude, keys){
    if(keys){
      function filter(first){
        return !exclude.some(
          second => keys.every(
            key => first[key] === second[key]
          )
        )
      }
    }else{
      function filter(first){       
        const keysLength = Object.keys(first).length;
        return !exclude.some(
          second => keysLength === (keys = Object.keys(second)).length 
          && keys.every(
            key => first[key] === second[key]
          )
        )
      }
    }

    return array.filter(filter)
  }

  filterObjectArray(categories, targets, ['id']);
  filterObjectArray(categories, targets);
__________________
29375, 35
Ответить с цитированием
  #13 (permalink)  
Старый 21.10.2018, 12:38
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от Роман Андреевич
источник БД, получаем основные категории а потом редактируем список
Что же вам мешает в запросе указать выборку только уникальных значений? Вы загодя лишнее получаете, чтобы потом еще и клиента нагружать пустой работой.
Ответить с цитированием
  #14 (permalink)  
Старый 25.10.2018, 06:42
Профессор
Отправить личное сообщение для Роман Андреевич Посмотреть профиль Найти все сообщения от Роман Андреевич
 
Регистрация: 12.08.2016
Сообщений: 299

laimas, ничего не мешает, в реалиях так и делается))) Тут тестовое задание
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сравнить два массива bohdantheone Общие вопросы Javascript 79 07.02.2018 10:04
Сравнить два двумерных массива victornalchik Элементы интерфейса 3 29.01.2018 22:52
сравнить два массива Роман Андреевич Общие вопросы Javascript 2 04.10.2017 14:12
Удалить данные с массива jeka123 Javascript под браузер 7 09.04.2014 16:42
как найти и удалить массив из массива? FRIE Общие вопросы Javascript 8 14.03.2011 15:48