Google apps script 为什么谷歌电子表格脚本可以';t排序? function summary\u TOGGL\u条目(项目、描述、时间、任务日期、uID){ 如果(!desc.map | | |!time.map | |!taskDates.map | |!proj.map){ 返回“输入必须是映射”; } if(desc.length!=time.length | | time.length!=taskDates.length | | proj.length!=taskDates.length){ 返回“错误的输入数组LEN”; } var resObj={'NO_DESCRIPTION':'00:00:00'}; var键=[]; var结果=[]; 对于(变量i=1;i

Google apps script 为什么谷歌电子表格脚本可以';t排序? function summary\u TOGGL\u条目(项目、描述、时间、任务日期、uID){ 如果(!desc.map | | |!time.map | |!taskDates.map | |!proj.map){ 返回“输入必须是映射”; } if(desc.length!=time.length | | time.length!=taskDates.length | | proj.length!=taskDates.length){ 返回“错误的输入数组LEN”; } var resObj={'NO_DESCRIPTION':'00:00:00'}; var键=[]; var结果=[]; 对于(变量i=1;i,google-apps-script,google-sheets,spreadsheet,Google Apps Script,Google Sheets,Spreadsheet,正如您所看到的,我试图返回一个数组的排序数组。但它不会返回相同的数组。如果我在我的电脑上使用这个函数,它就会工作。那有什么问题?有人有主意吗 结果图像看起来排序函数总是返回0。改为 function SUMMARIZE_TOGGL_ENTRIES(proj, desc, time, taskDates, uID) { if (!desc.map || !time.map || !taskDates.map || !proj.map) { return 'INPUT HAS TO

正如您所看到的,我试图返回一个数组的排序数组。但它不会返回相同的数组。如果我在我的电脑上使用这个函数,它就会工作。那有什么问题?有人有主意吗


结果图像看起来排序函数总是返回0。改为

function SUMMARIZE_TOGGL_ENTRIES(proj, desc, time, taskDates, uID) {
  if (!desc.map || !time.map || !taskDates.map || !proj.map) {
      return 'INPUT HAS TO BE MAP';
  }
  if (desc.length != time.length || time.length != taskDates.length || proj.length != taskDates.length) {
      return 'WRONG INPUT ARRAYS LEN';
  }
  var resObj = {'NO_DESCRIPTION': '00:00:00'};
  var keys = [];
  var result = [];
  for (var i = 1; i < desc.length; i++) {
      var tmpKey = createKey(proj[i], desc[i], uID[i]);
      console.log('tmpKey',tmpKey);
      if (resObj[tmpKey]) {
          resObj[tmpKey] = formatTime(timestrToSec(resObj[tmpKey]) + timestrToSec(time[i]));
      } else {
          resObj[tmpKey] = formatTime(timestrToSec(time[i]));
      }
  }
  keys = Object.keys(resObj);

  var b=0;
  for (b; b < keys.length; b++) {
      var tmp = [];
      var key = keys[b].split('__')[1];
      console.log('keys',keys[b].split('__'));
      tmp.push(keys[b].split('__')[0]);
      tmp.push(key);
      tmp.push(resObj[keys[b]]);
      tmp.push(taskLastDate(keys[b], desc, taskDates, proj, uID))
      tmp.push(keys[b].split('__')[2]);
    if(tmp[3] != '01-01-1991 01:01:01' && tmp[3] != ''){
      result.push(tmp);
    }

  }
  return result.sort(function (a,b){
    var ad = new Date(a[3].split(' ')[0].replace(/-/g,'.'));
    var bd = new Date(b[3].split(' ')[0].replace(/-/g,'.'));

    if (ad > bd) {
      return 1;
    }
    if (ad < bd) {
      return -1;
    }
    return 0;
  });
}
返回结果.排序(函数(a,b){
var ad=新日期(a[3]。拆分(“”)[0]。替换(/-/g,”);
var bd=新日期(b[3]。拆分(“”)[0]。替换(/-/g,”);
如果(ad>bd){
返回1;
}否则如果(ad
看看这是否有效?

1。请参阅:您没有提供变量描述或示例数据。2.为什么
替换(/-/g,'.')
Date.parse()
依赖于实现。尝试删除
ad
bd
并使用
a>b
词典比较。
return result.sort(function (a,b){
var ad = new Date(a[3].split(' ')[0].replace(/-/g,'.'));
var bd = new Date(b[3].split(' ')[0].replace(/-/g,'.'));

if (ad > bd) {
  return 1;
} else if (ad < bd) {
  return -1;
} else {
  return 0;
}
});