Size: a a a

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

2021 February 23

NT

Nikita Titov in JavaScript Noobs — сообщество новичков
hilarion_von_juzefindorf
видимо для осуществления операций над каждым элементом массива по очереди и возвращении результата каждой операции в результирующий массив
да, верно

я иногда говорю иммутабельная трансформация
источник

h

hilarion_von_juzefin... in JavaScript Noobs — сообщество новичков
Nikita Titov
да, верно

я иногда говорю иммутабельная трансформация
для меня интересным стало то, что третьим параметром каждые раз передается весь массив сразу и при операции над конкретным элементом можно использовать значение другого
источник

h

hilarion_von_juzefin... in JavaScript Noobs — сообщество новичков
Nikita Titov
да, верно

я иногда говорю иммутабельная трансформация
источник

NT

Nikita Titov in JavaScript Noobs — сообщество новичков
да, конечно можно

правда так еще не делал
источник

R

Roman in JavaScript Noobs — сообщество новичков
есть такая структура
const parsedLines = [
   {
     itemType: 'listBullet',
     content: 'bullet list',
     position: 0,
   },
   {
     itemType: 'link',
     content: 'https://index.php',
     position: 1,
   },
   {
     itemType: 'link',
     content: 'text',
     position: 1,
   }
 ]

мне нужно если позиции айтемов повторяются то их контент нужно склеить через даоиточие

должно на выходе быть так
const output = [
   {
     itemType: 'listBullet',
     content: 'bullet list',
     position: 0,
   },
   {
     itemType: 'link',
     content: 'https://index.php:text',
     position: 1,
   },

 ]
источник

B

Bad1m🔥 in JavaScript Noobs — сообщество новичков
Мапом?
источник

М

Максим in JavaScript Noobs — сообщество новичков
мап вернет ему массив той же длины, либо цикл либо редюс
источник

B

Bad1m🔥 in JavaScript Noobs — сообщество новичков
Объект асайн
источник

B

Bad1m🔥 in JavaScript Noobs — сообщество новичков
Через цикл
источник

B

Bad1m🔥 in JavaScript Noobs — сообщество новичков
При условии
источник

A

Alexander in JavaScript Noobs — сообщество новичков
подскажите с таким моментом, есть такой fetch запрос:

get: (url) => {
return fetch(`${API_ROOT}${url}`, {
method: 'GET',
headers: (generalStore.token !== null ? {Authorization: `Bearer ${generalStore.token}`} : {})
}).then(response => response.json())
.then(handleErrors)
}

он грузит всю дату в независимости от страниц, как можно отсортировать через AbortController чтобы допустим на url /home не грузился запрос analytics c другой страницы?
источник

М

Максим in JavaScript Noobs — сообщество новичков
Roman
есть такая структура
const parsedLines = [
   {
     itemType: 'listBullet',
     content: 'bullet list',
     position: 0,
   },
   {
     itemType: 'link',
     content: 'https://index.php',
     position: 1,
   },
   {
     itemType: 'link',
     content: 'text',
     position: 1,
   }
 ]

мне нужно если позиции айтемов повторяются то их контент нужно склеить через даоиточие

должно на выходе быть так
const output = [
   {
     itemType: 'listBullet',
     content: 'bullet list',
     position: 0,
   },
   {
     itemType: 'link',
     content: 'https://index.php:text',
     position: 1,
   },

 ]
function someFunc(data) {
 const cache = {};
 return data.reduce((acc, item) => {
   if (cache[item["itemType"]]) {
     acc[cache[item["itemType"]]] = { ...acc[cache[item["itemType"]]], content: `${acc[cache[item["itemType"]]]["content"]}:${item["content"]}` };
   } else {
     acc.push(item);
     cache[item["itemType"]] = acc.length - 1;
   }

   return acc;
 }, []);
}

Как вариант. Типа кеша. Можно ещё find'ом, а может и чет другое кинут.
источник

R

Roman in JavaScript Noobs — сообщество новичков
Максим
function someFunc(data) {
 const cache = {};
 return data.reduce((acc, item) => {
   if (cache[item["itemType"]]) {
     acc[cache[item["itemType"]]] = { ...acc[cache[item["itemType"]]], content: `${acc[cache[item["itemType"]]]["content"]}:${item["content"]}` };
   } else {
     acc.push(item);
     cache[item["itemType"]] = acc.length - 1;
   }

   return acc;
 }, []);
}

Как вариант. Типа кеша. Можно ещё find'ом, а может и чет другое кинут.
не совсем правельно работает, функция не должна зависить от структури
источник

М

Максим in JavaScript Noobs — сообщество новичков
Roman
не совсем правельно работает, функция не должна зависить от структури
И каким образом оно должно знать что ему с чем складывать?)
источник

R

Roman in JavaScript Noobs — сообщество новичков
например если будет так
const data = [
   {
     itemType: 'listBullet',
     content: 'bullet list',
     position: 0,
   },
   {
     itemType: 'link',
     content: 'https://index.php',
     position: 1,
   },
   {
     itemType: 'link',
     content: 'text',
     position: 1,
   },
   {
       itemType: 'link',
       content: 'https://link.php',
       position: 2,
     },
     {
       itemType: 'link',
       content: 'text',
       position: 2,
     }
 ]
источник

R

Roman in JavaScript Noobs — сообщество новичков
то в результате должно быть
 result: [
   { itemType: 'listBullet', content: 'bullet list', position: 0 },
   {
     itemType: 'link',
     content: 'https://index.php:text',
     position: 1
   },
   {
     itemType: 'link',
     content: 'https://link.php:text',
     position: 2
   }
 ]
источник

R

Roman in JavaScript Noobs — сообщество новичков
Максим
И каким образом оно должно знать что ему с чем складывать?)
айтемы зависисы между собой только если их позиция совтадает
источник

М

Максим in JavaScript Noobs — сообщество новичков
Ну я пример кинул, можно переделать чтобы и position сравнивало
источник

М

Максим in JavaScript Noobs — сообщество новичков
на find переделай, кода меньше будет, правда будет 2 цикла считай. хотя и в прошлом коде 2 строки добавить и все
источник

R

Roman in JavaScript Noobs — сообщество новичков
Максим
на find переделай, кода меньше будет, правда будет 2 цикла считай. хотя и в прошлом коде 2 строки добавить и все
а зачем кеш тут?
источник