Size: a a a

JavaScript — русскоговорящее сообщество

2020 January 29

IK

Iliya Kobaliya in JavaScript — русскоговорящее сообщество
Да
источник

E

Exi(s)t in JavaScript — русскоговорящее сообщество
Да)))))
источник

E

Exi(s)t in JavaScript — русскоговорящее сообщество
Хорошо я представлю для себя кейс сам: тебе нужно юзеров расфасовать по их увлечениям?
источник

E

Exi(s)t in JavaScript — русскоговорящее сообщество
В одном obj список юзверей интересующихся музыкой, в другом еще чем? И получать по ключу-увлечению список юзверов?
источник

E

Evgen in JavaScript — русскоговорящее сообщество
Iliya Kobaliya
const initialArray = [
       {id: 1, name: "item one", tags: ["music", "sport", "science"]},
       {id: 2, name: "item two", tags: ["music"]},
       {id: 3, name: "item three", tags: ["fun"]},
       {id: 4, name: "item four", tags: ["sport", "science"]},
       {id: 5, name: "item five", tags: []},
   ];

   const fun = arr =>
       arr.reduce((acc, item) => {
           if (!item.tags.length) {
               acc["without tag"] = acc["without tag"]
                   ? [...acc["without tag"], item]
                   : [item];
               return acc;
           }

           item.tags.forEach(I => {
              return acc[I] = acc[I] ? [...acc[I], item] : [item];
           });

           return acc;
       }, {});
   console.log(fun(initialArray));
//([{music:[]},{...},{...}])
.reduce((acc, item) => {
   item.tags.forEach(tag => acc[tag] = (acc[tag] || []).concat(item));
   if (item.tags.length === 0) {
       acc['untagged'] = (acc['untagged'] || []).concat(item);
   }
   return acc;
}, {});

Это тебе надо что ли?
источник

E

Exi(s)t in JavaScript — русскоговорящее сообщество
Слишком функционально😅 в таких случаях предпочитаю старые добрые for of
источник

E

Evgen in JavaScript — русскоговорящее сообщество
Вообщем тоже самое почти что у тебя.
источник

E

Exi(s)t in JavaScript — русскоговорящее сообщество
Через месяц вдуплять потом долго что этот код делает
источник

E

Exi(s)t in JavaScript — русскоговорящее сообщество
А так лаконично, да
источник

E

Evgen in JavaScript — русскоговорящее сообщество
Exi(s)t
Слишком функционально😅 в таких случаях предпочитаю старые добрые for of
Это уже вкусовщина и к фп практически не имеет отношения(это я про свой код)
источник

E

Evgen in JavaScript — русскоговорящее сообщество
Мне не понятно зачем такой формат исходящих данных нужен
источник

KS

Konstantin Sedykh in JavaScript — русскоговорящее сообщество
Evgen
.reduce((acc, item) => {
   item.tags.forEach(tag => acc[tag] = (acc[tag] || []).concat(item));
   if (item.tags.length === 0) {
       acc['untagged'] = (acc['untagged'] || []).concat(item);
   }
   return acc;
}, {});

Это тебе надо что ли?
странный способ вначале перебрать массив форычем, а потом проверить его длинну на ноль. 😁
источник

E

Evgen in JavaScript — русскоговорящее сообщество
Konstantin Sedykh
странный способ вначале перебрать массив форычем, а потом проверить его длинну на ноль. 😁
Да, код не идеальный )
источник

E

Evgen in JavaScript — русскоговорящее сообщество
Как и постановка задачи
источник

E

Evgen in JavaScript — русскоговорящее сообщество
Konstantin Sedykh
странный способ вначале перебрать массив форычем, а потом проверить его длинну на ноль. 😁
.reduce((acc, item) => {
   ((item.tags.length === 0) ? ['untagged'] : item.tags)
       .forEach(tag => acc[tag] = (acc[tag] || []).concat(item));
   return acc;
}, {});

Так лучше? )
источник

KS

Konstantin Sedykh in JavaScript — русскоговорящее сообщество
Evgen
.reduce((acc, item) => {
   ((item.tags.length === 0) ? ['untagged'] : item.tags)
       .forEach(tag => acc[tag] = (acc[tag] || []).concat(item));
   return acc;
}, {});

Так лучше? )
👍
источник

R

Roman in JavaScript — русскоговорящее сообщество
Привет.

Кто знает, как переместить элемент из середины в конец (например).
Можно и с использованием lodash.
Я с ним слабо знаком, в документации найти такого метода не могу :((
источник

KS

Konstantin Sedykh in JavaScript — русскоговорящее сообщество
Roman
Привет.

Кто знает, как переместить элемент из середины в конец (например).
Можно и с использованием lodash.
Я с ним слабо знаком, в документации найти такого метода не могу :((
array.push(array.splice(index, 1));
источник

R

Roman in JavaScript — русскоговорящее сообщество
Konstantin Sedykh
array.push(array.splice(index, 1));
Спасибо.

А если нужно будет обратно его вернуть?
источник

KS

Konstantin Sedykh in JavaScript — русскоговорящее сообщество
Roman
Спасибо.

А если нужно будет обратно его вернуть?
array.splice(index, 0, array.pop());
источник