Почему скрипты электронных таблиц Google не могут сортироваться? - PullRequest
0 голосов
/ 14 января 2020
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;
  });
}

как видите, я пытаюсь вернуть отсортированный массив массивов. Но он не возвращает тот же массив. Если я пообедаю этим забавным c на моем P C, это сработает. так в чем проблема? У кого-нибудь есть идеи?

результат image

1 Ответ

1 голос
/ 14 января 2020

Похоже, ваша функция сортировки всегда будет возвращать 0. Измените на

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

и посмотрите, работает ли это?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...