2016-04-06 35 views
1

Eminim ki bu gerçekten basit bir şey ama çözüm beni sadece kaçar. iDizideki ögelerden önce ve sonra değerlerin ayıklanması ve gruplanması

'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' 

gibi bir dizi bilgisi göz önüne alındığında I can anında grubu, bu şekilde

Aklımdakinden elemanları önce bb sonra: aa

önce: sonra aa :

dd

önce: dd sonra: cc

Koddaki gibi öğeleri çıkarır ve gruplandırır. Got kadarıyla Belki tarihe göre basit bir sıralama için aradığınız Array 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

beklenen çıkışı nedir? – gurvinder372

+1

BTW: Neden 'a.sort();'? 'sort' 2B dizileriyle düzgün çalışmaz (varsayılan olarak). – hindmost

+0

Düşünceleriniz onları daha önceki değerleri = { : ["bb", "aa", "dd"], sonra döndürür: ["aa", "dd", "cc"] } için sıralama gerekir öncesi ve sonrası değerleri alabilmek için tarihe göre sıralayın. Dizi 2 eleman kısa olsa bile her 2 eleman ikiye gruplandırılarak gruplandırılır, sonraki değer sıfır olacaktır. –

cevap

0

sipariş olarak. ISO 6801 tarihleri ​​ise, tarih dizelerini düz dizeler olarak sıralayabilirsiniz.

Daha sonra dizinin bölümlerini sıralanan ortamlarla alabilirsiniz.

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>");