Dieses 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!