Size: a a a

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

2021 April 28

Ю

Юра in JavaScript — русскоговорящее сообщество
Переслано от Юра
есть: [{date: ’11/10/2020, opened: 5, closed: 10, failed: 3}, {date: ’11/10/2020, opened: 1, closed: 14, failed: 312}, {date: ’15/10/2020, opened: 11, closed: 14, failed: 2}]
хочу [{date: ’11/10/2020, opened: 6, closed: 24, failed: 315}, {тут уже следующая дата }]
источник

SM

Soltukiev Malik in JavaScript — русскоговорящее сообщество
дайте ссылки на хорошую статью по WebRTC
источник

sr

serhio ramos in JavaScript — русскоговорящее сообщество
и даты ещё не по порядку идут потом выясниться , да ? 😁
источник

Ю

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

IS

Ivan Savin in JavaScript — русскоговорящее сообщество
а в чём сложность?
источник

IS

Ivan Savin in JavaScript — русскоговорящее сообщество
function groupByDate(data) {
   const result = {};
   for (let { date, opened, closed, failed } of data) {  
       if (result[date]) {
           result[date].opened += opened;
           result[date].closed += closed;
           result[date].failed += failed;
       } else {
           result[date] = { opened, closed, failed };
       }
   }

   return Object.entries(result).map(([date, info]) => ({date, ...info}));
}

const data = [{date: '11/10/2020', opened: 5, closed: 10, failed: 3}, {date: '11/10/2020', opened: 1, closed: 14, failed: 312}, {date: '15/10/2020', opened: 11, closed: 14, failed: 2}]

const grouped = groupByDate(data);

console.log(grouped);  


типа того, что ли? реализация как топор, кнчн, но тем не менее
источник

Ю

Юра in JavaScript — русскоговорящее сообщество
чувак, ключей может же быть хоть 100, я же писал, не только 3 которые в примере
источник

IS

Ivan Savin in JavaScript — русскоговорящее сообщество
чувак, проверь сначала
источник

IS

Ivan Savin in JavaScript — русскоговорящее сообщество
и добавь минимальные изменения в код
источник

IS

Ivan Savin in JavaScript — русскоговорящее сообщество
целый цикл добавить надо)
источник

IS

Ivan Savin in JavaScript — русскоговорящее сообщество
function groupByDate(data) {
   const result = {};
   for (let { date, ...meta } of data) {  
       if (result[date]) {
           Object.keys(result[date]).forEach(key => result[date][key] += meta[key])
       } else {
           result[date] = meta;
       }
   }

   return Object.entries(result).map(([date, info]) => ({date, ...info}));
}

const data = [{date: '11/10/2020', opened: 5, closed: 10, failed: 3}, {date: '11/10/2020', opened: 1, closed: 14, failed: 312}, {date: '15/10/2020', opened: 11, closed: 14, failed: 2}]

const grouped = groupByDate(data);

console.log(grouped);
источник

sr

serhio ramos in JavaScript — русскоговорящее сообщество
let arr=[{date: '11/10/2020', opened: 5, closed: 10, failed: 3}, {date: '11/10/2020', opened: 1, closed: 14, failed: 312},{date: '11/10/2022', opened: 5, closed: 10, failed: 3}]
//хочу [{date: '11/10/2020', opened: 6, closed: 24, failed: 315}];
let resultTemplate={opened:0,closed:0,failed:0,date:''};
resultArray=[];
let currentResult={...resultTemplate};
currentDate=arr[0]["date"];

for(let a of arr){
if(a["date"]==currentDate){
for(let i in a){
 if(i!="date")currentResult[i]+=a[i];
 
}}
else{
 currentDate=a["date"];
  resultArray.push(currentResult);
  currentResult={...resultTemplate};
for(let i in a){
 if(i!="date")currentResult[i]+=a[i];
}
}
}
resultArray.push(currentResult);
console.log(resultArray,currentDate);
источник

Ю

Юра in JavaScript — русскоговорящее сообщество
щас гляну, пасиб
источник

IS

Ivan Savin in JavaScript — русскоговорящее сообщество
можно, в принципе, даже в одну строчку переписать
источник

IS

Ivan Savin in JavaScript — русскоговорящее сообщество
но не надо, пожалуйста
источник

sr

serhio ramos in JavaScript — русскоговорящее сообщество
напиши )
источник

IS

Ivan Savin in JavaScript — русскоговорящее сообщество
ну я пошутил, вообще-то, но ладно, прошу, раз уж так хочется:
хотя уверен, что и изначально наверняка молжно было всё гораздо проще сделать, но это хрен поправишь уже хд

const groupByDate = data => Object.entries(data.reduce((res, { date, ...meta }) => (res[date] ? Object.keys(res[date]).forEach(key => res[date][key] += meta[key]) : res[date] = meta, res), {})).map(([date, info]) => ({date, ...info}));
источник

IS

Ivan Savin in JavaScript — русскоговорящее сообщество
ну так что, всё как надо?
источник

Ю

Юра in JavaScript — русскоговорящее сообщество
думаю да, еще смотрю
источник

IS

Ivan Savin in JavaScript — русскоговорящее сообщество
если ключи какие-то будут в одном, но не будут в другом - работать не будет как надо, конечно, но тут уж точно сами, это вообще ерунда)
источник