2016-04-06 5 views
1

Ich bin sicher, es ist etwas wirklich Grundlegendes, aber die Lösung entgeht mir einfach. Unter Berücksichtigung Ich habe ein Array wieExtrahieren und Gruppieren von Elementen im Array in Vorher-Nachher-Werten

'2015-06-12 07:00:56', 'aa', 
'2015-02-17 15:12:31', 'bb', 
'2016-02-08 11:45:12', 'cc', 
'2016-02-07 11:45:12', 'dd' 

Ich kann sofort Gruppe der Elemente in meinem Kopf auf diese Weise

vor: bb nach: aa

vor: aa nach: dd

vorher: dd nachher: ​​cc

Nicht sicher wie Ich extrahiere und gruppiere die Elemente so im Code. Haben Sie so weit das Array Bestellung https://jsfiddle.net/6wt6gqbw/

var a = [['2015-06-12 07:00:56', 'aa'], ['2015-02-17 15:12:31', 'bb'], ['2016-02-08 11:45:12', 'cc'],['2016-02-07 11:45:12', 'dd']]; 

a.sort(); 

before = ''; 
beforeArr = []; 
afterArr = []; 

for (var i = 0; i < a.length; i++) { 


    { 
    before += a[i][1] + ','; 
    } 

beforeF = before.substr(0, before.length - 1); 

} 

console.log(beforeF); 
+1

was ist die erwartete Ausgabe? – gurvinder372

+1

BTW: Warum 'a.sort();'? 'sort' funktioniert nicht richtig mit 2D-Arrays (standardmäßig). – hindmost

+0

Thinking konnte sie in Werten zurückgeben = { vorher: ["bb", "aa", "dd"], nach: ["aa", "dd", "cc"] } für die Sortierung muss Nach dem Datum sortieren, um die Vorher-Nachher-Werte zu erhalten. Alle 2 Elemente werden zu Paaren von zwei gruppiert, selbst wenn das Array 1 Element kurz ist, bedeutet dies, dass der Nach-Wert Null ist. –

Antwort

0

Vielleicht eine einfache Sortierung nach Datum suchen für Sie. Sie können Datumszeichenfolgen als einfache Zeichenfolgen sortieren, wenn sie ISO 6801 Datumsangaben sind.

Später können Sie Teile des Arrays mit den sortierten Systemen erhalten.

var a = [['2015-06-12 07:00:56', 'aa'], ['2015-02-17 15:12:31', 'bb'], ['2016-02-08 11:45:12', 'cc'], ['2016-02-07 11:45:12', 'dd']]; 
 

 
a.sort(function (a, b) { 
 
    return a[0].localeCompare(b[0]); 
 
}); 
 

 
var content = a.map(function (a) { return a[1]; }), 
 
    before = content.slice(0, content.length - 1), 
 
    after = content.slice(1); 
 
document.write("<pre>a " + JSON.stringify(a, 0, 4) + "</pre>"); 
 
document.write("<pre>content " + JSON.stringify(content, 0, 4) + "</pre>"); 
 
document.write("<pre>before " + JSON.stringify(before, 0, 4) + "</pre>"); 
 
document.write("<pre>after " + JSON.stringify(after, 0, 4) + "</pre>");

Verwandte Themen