我有一个看起来像这样的数组。
[[2017-08-31,AA, 12:00 PM],
[2017-08-31,AA, 01:00 PM],
[2017-08-31,AA, 01:00 PM],
[2017-08-31,AA, 02:00 PM],
[2017-08-31,BB, 03:00 PM],
[2017-08-31,BB, 04:00 PM]]
这是我的代码,关于我如何根据时间对其进行排序。
TITOArray.push([output_stddate,std_timein]);
TITOArray.sort(function (a, b) {
var time1 = a[2];
var time2 = b[2];
return new Date('1970/01/01 ' + time1) - new Date('1970/01/01 ' + time2);
});
}
如何获取第一个和最后一个数组?
像这样。[[2017-08-31,AA, 12:00 PM],
[2017-08-31,AA, 02:00 PM],
[2017-08-31,BB, 03:00 PM],
[2017-08-31,BB, 04:00 PM]]
只要第1列和第2列中的条件相同,就获得第1个和最后一个数组。
我的意思是每个Column1和Column 2组都获得第一个和最后一个数组
TYSM寻求帮助
答案 0 :(得分:0)
function firstandlast()
{
var tA=[['2017-08-31','AA','12:00 PM'],['2017-08-31','AA','01:00 PM'],['2017-08-31','AA','01:00 PM'],['2017-08-31','AA','02:00 PM'],['2017-08-31','BB','03:00 PM'],['2017-08-31','BB','04:00 PM']];
var gA=[];
for(var i=0;i<tA.length;i++)
{
if(i==0)
{
gA.push(tA[i]);
}
else
{
if(tA[i][1]!=last1)
{
gA.push(tA[i-1]);
gA.push(tA[i]);
}
}
var last1=tA[i][1];
}
if(gA.indexOf(tA[tA.length-1])==-1)
{
gA.push(tA[tA.length-1]);
}
Logger.log(gA);
}
答案 1 :(得分:0)
var testData = [['2017-08-31','AA','12:00 PM'],
['2017-08-30','AA','01:00 PM'],
['2017-08-31','AA','01:00 PM'],
['2017-08-31','AA','02:00 PM'],
['2017-08-31','BB','03:00 PM'],
['2017-08-31','BB','04:00 PM']];
function treeishSort (multiArray) {
var rootNode = {};
multiArray.forEach(function(row) {
pushNode(row[0], row[1], row[2]);
});
function pushNode(date, category, time) {
var key = date + '\n' + category;
if(rootNode[key] || (rootNode[key] = [])) {
rootNode[key].push(time);
if(rootNode[key].length > 1) { //if there are two item sort the array;
rootNode[key].sort(function (time1, time2){
return new Date('1970/01/01 ' + time1) - new Date('1970/01/01 ' + time2)
});
}
if(rootNode[key].length > 2) { //if there are three items repalce the array with first and last
rootNode[key] = [rootNode[key][0], rootNode[key][2]];
}
}
}
function getFirstLast(tree) {
let temp = [];
Object.keys(tree).forEach(function (key) {
var date = key.split('\n')[0];
var category = key.split('\n')[1];
temp.push([date, category, tree[key][0]]);
if(tree[key].length > 1) temp.push([date, category, tree[key][1]]); //there might be only item so this check
})
return temp;
}
return getFirstLast(rootNode);
}
console.log(treeishSort(testData));