在值之前和之后提取和分组数组中的元素

时间:2016-04-06 08:46:14

标签: javascript arrays sorting grouping

我确信这是一个非常基本的东西,但解决方案只是逃避了我。 考虑到我有一个类似

的数组
'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 个答案:

答案 0 :(得分:0)

也许您正在寻找按日期排序的简单方法。您可以将日期字符串排序为纯字符串,如果它们是ISO 6801个日期。

稍后您可以使用已排序的tems获取数组的部分内容。

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