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