So optimieren Sie die JSON-Datengruppierung in JS
Apr 14, 2018 am 10:14 AMDieses Mal zeige ich Ihnen, wie Sie die JSON-Datengruppierung von JS optimieren. Hier ist ein praktischer Fall.
Es gibt eine Menge Daten, die ich nach Zeit gruppieren muss, damit die Front-End-Ansicht gerendert werden kann[ {"date":"2017-12-22","start_time":"10:00:00","end_time":"10:00:00","status":"Performance Time"}, {"date":"2017-12-22","start_time":"10:40:00","end_time":"10:40:00","status":"Performance Time"}, {"date":"2017-12-23","start_time":"10:00:00","end_time":"10:00:00","status":"Performance Time"}, {"date":"2017-12-23","start_time":"10:40:00","end_time":"10:40:00","status":"Performance Time"} ]
[ { date: '2017-12-22', data: [ { date: '2017-12-22', start_time: '10:00:00', end_time: '10:00:00', status: 'Performance Time' }, { date: '2017-12-22', start_time: '10:40:00', end_time: '10:40:00', status: 'Performance Time' } ] }, { date: '2017-12-23', data: [ { date: '2017-12-23', start_time: '10:00:00', end_time: '10:00:00', status: 'Performance Time' }, { date: '2017-12-23', start_time: '10:40:00', end_time: '10:40:00', status: 'Performance Time' } ] } ]
1. Originelle Methode, viele Netzwerke
var map = {}, nList = [] //遍历原始数组 for (var i = 0; i < arr.length; i++) { var item = arr[i] //如果map没有则在新nList中添加 if (!map[item.date]) { nList.push({ date: item.date, data: [item] }) map[item.date] = item } else { //遍历nList for (var j = 0; j < nList.length; j++) { var nItem = nList[j]、 //如查找到date符合则添加 if (nItem.date == item.date) { nItem.data.push(item) //跳出循环 break } } } }
2. Nutzen Sie ES5-Funktionen
Ersetzen Sie for durchforEach und every
let map = {}, nList = [] arr.forEach((item) => { if (!map[item.date]) { nList.push({ date: item.date, data: [item] }) map[item.date] = item } else { //因为forEach不支持break,所以使用every实现 nList.every((nItem) => { if (nItem.date === item.date) { nItem.data.push(item) return false } return true }) } })
Leistungsoptimierung50 %, ca. 1,5 ms!
3. Praxis zur Leistungsoptimierung
Da die Daten in meinem Array der Reihe nach angeordnet sind und es keine Duplikate gibt, kann ich darüber nachdenken, die zweite Schleifelet map = {}, nList = [] //设置初始key为0 let _nkey = 0 arr.forEach((item, index) => { if (index === 0) { nList.push({ date: item.date, data: [item] }) } else { let oItem = arr[index - 1] //和前一个date一致则在当前添加,否则添加至nList if (item.date === oItem.date) { nList[_nkey]['data'].push(item) } else { nList.push({ date: item.date, data: [item] }) _nkey ++ } } })
PS: JS-Operation JSON-Zusammenfassung
JSON ( Dieser Artikel fasst hauptsächlich die Grundlagen des JS-Betriebs von JSON zusammen. In JSON gibt es zwei Strukturen:Objekt und Array.
1. Ein Objekt beginnt mit „{“ (linke Klammer) und endet mit „}“ (rechte Klammer). Auf jeden „Namen“ folgt ein „:“ (Doppelpunkt); „Name/Wert“-Paare werden durch „“, (Komma) getrennt. Der Name wird in Anführungszeichen gesetzt; wenn der Wertvar o={"xlid":"cxh","xldigitid":123456,"topscore":2000,"topplaytime":"2009-08-20"};
var jsonranklist=[{"xlid":"cxh","xldigitid":123456,"topscore":2000,"topplaytime":"2009-08-20"},{"xlid":"zd","xldigitid":123456,"topscore":1500,"topplaytime":"2009-11-20"}];
var str1 = '{ "name": "cxh", "sex": "man" }';
var str2 = { "name": "cxh", "sex": "man" };
1. JSON-Zeichenfolge in JSON-Objekt konvertieren
Um den oben genannten str1 zu verwenden, müssen Sie Folgendes verwenden, um ihn in ein JSON-Objekt zu konvertieren://由JSON字符串转换为JSON对象 var obj = eval('(' + str + ')');
var obj = str.parseJSON(); //由JSON字符串转换为JSON对象
var obj = JSON.parse(str); //由JSON字符串转换为JSON对象
Alert(obj.name); Alert(obj.sex);
2. Sie können toJSONString() oder die globale Methode JSON.stringify() verwenden, um das JSON-Objekt in einen JSON-String zu konvertieren.
Zum Beispiel:var last=obj.toJSONString(); //将JSON对象转化为JSON字符
var last=JSON.stringify(obj); //将JSON对象转化为JSON字符 alert(last);
Achtung:
Unter den oben genannten Methoden stammen viele andere Methoden aus dem Paket json.js, außer dass die Funktion eval() mit js geliefert wird. Neue Version von JSON geändert API werden sowohl die Methoden JSON.stringify() als auch JSON.parse() in die integrierten Objekte von Javascript eingefügt, und erstere wird Object.toJSONString(), was wird String.parseJSON(). Wenn Sie die Meldung erhalten, dass die Methoden toJSONString() und parseJSON() nicht gefunden werden können, bedeutet dies, dass die Version Ihres JSON-Pakets zu niedrig ist.
Ich glaube, dass Sie die Methode beherrschen, nachdem Sie den Fall in diesem Artikel gelesen haben. Weitere spannende Informationen finden Sie in anderen verwandten Artikeln auf der chinesischen PHP-Website!
Empfohlene Lektüre:
Detaillierte Erläuterung der Verwendung der Multithread-Laufzeitbibliothek Nexus.js von JS
Wie man Jackson wann bedient Parsen von JSON-Strings. Groß- und Kleinschreibung konvertieren
Das obige ist der detaillierte Inhalt vonSo optimieren Sie die JSON-Datengruppierung in JS. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heißer Artikel

Hot-Tools-Tags

Heißer Artikel

Heiße Artikel -Tags

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Tipps zur Leistungsoptimierung für die Konvertierung von PHP-Arrays in JSON

Wie steuern Anmerkungen in der Jackson-Bibliothek die JSON-Serialisierung und -Deserialisierung?

C++-Programmoptimierung: Techniken zur Reduzierung der Zeitkomplexität

Die Parameterkonfiguration des Vivox100 wurde enthüllt: Wie kann die Prozessorleistung optimiert werden?

So optimieren Sie die Startelemente des WIN7-Systems

Schnelle Tipps zum Konvertieren von PHP-Arrays in JSON

Welche Möglichkeiten gibt es, Ineffizienzen in PHP-Funktionen zu beheben?

Probleme und Lösungen beim Konvertieren von PHP-Arrays in JSON
