Size: a a a

JavaScript Noobs — сообщество новичков

2020 February 07

🧨

🧨 ethorz in JavaScript Noobs — сообщество новичков
Vladyslav Hrehul
function getUniqueArray(array, primaryKey) {
   const entities = {};
   const result = [];

   array.forEach((value) => {
     entities[value[primaryKey]] = value;
   });

   for (const key in entities) {
     if (entities.hasOwnProperty(key)) {
       result.push(entities[key]);
     }
   }

   return result;
 }
вот универсально на любой ключ
зачем так извращаться)
источник

AB

Anatoly Berbeka in JavaScript Noobs — сообщество новичков
Foma
мб и сет подойдёт
не, сетом пробовал, пропускает дубликаты.
Пока оставлю reduce закомментированный, это уже с командой обсуждать надо, будем на стороне клиента это обрабатывать или нет
источник

F

Foma in JavaScript Noobs — сообщество новичков
Anatoly Berbeka
Какие есть способы отфильтровать объекты в массиве? Мне надо оставить только те, у которых id встречается только 1 раз.
Array.from(new Set(myArr)) не фильтрует.
myArr.filter((el, index) => myArr.indexOf(el) === index) тоже не фильтрует
mySet=new Set()
arr.forEach(x=>mySet.add(JSON.stringify(x
источник

AB

Anatoly Berbeka in JavaScript Noobs — сообщество новичков
Foma
mySet=new Set()
arr.forEach(x=>mySet.add(JSON.stringify(x
занятное решение. Разве конвертация не создаст излишней нагрузки по сравнению с reduce? У меня там тысячи элементов местами)
источник

F

Foma in JavaScript Noobs — сообщество новичков
хз, это в лоб
источник

F

Foma in JavaScript Noobs — сообщество новичков
бек даёт на фронт тысячи объектов?
источник

🧨

🧨 ethorz in JavaScript Noobs — сообщество новичков
ха-ха)
источник

🧨

🧨 ethorz in JavaScript Noobs — сообщество новичков
что-то у вас тут не так, такого не должно быть
источник

VH

Vladyslav Hrehul in JavaScript Noobs — сообщество новичков
🧨 ethorz
зачем так извращаться)
а что не нравится?
источник

🧨

🧨 ethorz in JavaScript Noobs — сообщество новичков
Vladyslav Hrehul
а что не нравится?
reduc’ом короче
источник

🧨

🧨 ethorz in JavaScript Noobs — сообщество новичков
+ можно передавать так же ключ и искать наличие элемента
источник

🧨

🧨 ethorz in JavaScript Noobs — сообщество новичков
const getUniq =(arr1 =[], arr2 = [], key)=> arr1.reduce((acc, elem) => {
   if (acc.find(exist => exist[key] !== elem[key])) {
      acc.push(elem)
  }

  return acc
}, [
...arr2])}
источник

🧨

🧨 ethorz in JavaScript Noobs — сообщество новичков
пишу с телефона, поэтому никакого форматирования)
источник

VH

Vladyslav Hrehul in JavaScript Noobs — сообщество новичков
🧨 ethorz
const getUniq =(arr1 =[], arr2 = [], key)=> arr1.reduce((acc, elem) => {
   if (acc.find(exist => exist[key] !== elem[key])) {
      acc.push(elem)
  }

  return acc
}, [
...arr2])}
что за arr2?
источник

🧨

🧨 ethorz in JavaScript Noobs — сообщество новичков
если нужно объединить два массива
источник

🧨

🧨 ethorz in JavaScript Noobs — сообщество новичков
и чтобы на выходе был массив с уникальными элементами по определенному ключу
источник

VH

Vladyslav Hrehul in JavaScript Noobs — сообщество новичков
🧨 ethorz
если нужно объединить два массива
так изначально же задача была оставить уникальные данные в 1 массиве или я чето упутсил?
источник

🧨

🧨 ethorz in JavaScript Noobs — сообщество новичков
Vladyslav Hrehul
так изначально же задача была оставить уникальные данные в 1 массиве или я чето упутсил?
ну потом написал про сервер, что приходят дубликаты
источник

VH

Vladyslav Hrehul in JavaScript Noobs — сообщество новичков
там в моем решение по сути
array.forEach((value) => {
     entities[value[primaryKey]] = value;
   });
и этого достатоточно, а то некст, то я писал для каких-то нужд, уже не помню
источник

🧨

🧨 ethorz in JavaScript Noobs — сообщество новичков
Anatoly Berbeka
Тут да)
У меня просто данные сохраняются локально, достаём их, получаем ответ от сервера. Если с сервера пришли данные - их надо положить локально. Просто у меня сейчас появляются дубликаты, и их так просто не убрать
ап
источник