2016-04-06 8 views
1

私はそれが本当に基本的なものだと確信していますが、解決策は私を逃してしまいます。 私は前と後の値の配列の要素の抽出とグループ化

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

ような配列を持って考えると私はでき即座にグループこのよう

で私の頭の中の要素の前に:BB 後:AA

前:後はAA :

をddを

前:dd 後:cc

私はこのような要素をコードで抽出してグループ化します。限りたぶん、あなたは、日付によって、単純なソートを探している配列 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

予想される出力は何ですか? – gurvinder372

+1

ところで:なぜ 'a.sort();'? 'sort'は2D配列(デフォルト)では正しく動作しません。 – hindmost

+0

考えてみると、値「{012b」の前に:["bb"、 "aa"、 "dd"]、 の後に:["aa"、 "dd"、 "cc"] }前と後の値を取得できるように日付で並べ替えます。配列が1要素短い場合でも、2つの要素は2つずつペアにグループ化され、後の値はnullになります。 –

答えて

0

を注文するようになりました。 ISO 6801の日付であれば、日付文字列を平易な文字列としてソートできます。

その後、ソートされた配列で配列の一部を取得できます。

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

関連する問題