javascript — Array Reduce, дающий неопределенные результаты для данных

Array Reduce, дающий неопределенные результаты для данных

Я пытаюсь накапливать значения JSON на основе уникальных значений имени. Но я продолжаю получать данные как неопределенные.

Мой JSON:

 [ { "date": "2019-09-16", "browser": "Firefox", "hello": 487586, "bye": 398217 }, { "date": "2019-09-16", "browser": "Firefox", "hello": 2661089, "bye": 2111027 }, { "date": "2019-09-16", "browser": "Chrome", "hello": 218492, "bye": 164685 }, { "date": "2019-09-16", "browser": "IE", "hello": 164572, "bye": 86309 }, { "date": "2019-09-16", "browser": "Chrome", "hello": 67534, "bye": 19736 } ] 

Мой код:

 let json = `json_url`; let Social_Media = ['Facebook', 'Instagram', 'Twitter', 'LinkedIn', 'TikTok']; axios.get(json, { cancelToken: new CancelToken(function executor(c) { api_requests.json_count = c; }) }) .then(function(json_counts) { let json_chart_data = json_counts.data; let val = [...new Set(json_chart_data.map(({ nm }) ={amp}gt; nm))]; console.log(val); series = val.reduce((a, c, i) ={amp}gt; { console.log(a); cur_data = json_chart_data.filter(d ={amp}gt; { return d.nm === c }).sort(compare_values('date')); return [...a, { name: c.replace(/_/g, ' '), data: cur_data.reduce((aa, cc) ={amp}gt; { // console.log(aa); return [...aa, { x:  date(cc), y:  cc.hello, bye:  cc.bye }]; }, []), Social: Social_Media[i] }]; }, []); 

val возвращает ["Firefox","Chrome","IE"]

Я ожидаю, что console.log(a) вернется:

 [] [0:{data:[json_data for Firefox]}, name:"Firefox", Social_Media:"Facebook"}] [0:{data:[json_data for Firefox]}, name:"Firefox", Social_Media:"Facebook"}, 1:{data:[json_data for Chrome]}, name:"Chrome", Social_Media:"Instagram"}] ... 

Я осознаю:

 [] [0:{data:undefined}, name:"Firefox", Social_Media:"Facebook"}] [0:{data:undefined}, name:"Firefox", Social_Media:"Facebook"}, 1:{data:undefined}, name:"Chrome", Social_Media:"Instagram"}] 

Что я делаю неправильно? Я просто хочу объединить все результаты для каждого типа браузера. Это потому, что я нахожу уникальные браузеры, а затем использую метод Reduce для их объединения?

Понравилась статья? Поделиться с друзьями:
JavaScript & TypeScript
Adblock
detector