我希望更改Array中的行值,当它具有与前一行相同的驻留和相同的药物时。
最初它看起来是否是重复任务 - 如果是,则设置默认值"更多":
//check if something from one time per day
if (startTime[resMedVals[resMedRow][3]]){
medPlan[lastRow].push(startTime[resMedVals[resMedRow][3]]+":00");
}else{
medPlan[lastRow].push("More")
}//end if time
然后它返回并处理"更多"值。如果是第一次重复任务,则设置初始开始时间值。如果重复,则根据需要复制尽可能多的行。
//if more times per day medicine, then replicate tasks
if(medPlan[lastRow][9]== "More"){
var timesToReplicate = medPlan[lastRow][5].charAt(0)
for(var i=0; i < timesToReplicate; i++){
if (i==0){
//first time
medPlan[lastRow][9] = workDay["start"]
medPlan[lastRow][9] += ":00"
}else{
//add entire last entire row
medPlan.push(medPlan[medPlan.length-1]);
}//end if else first time
直到这部分一切正常。
然后我想为重复(而不是第一)值设置不同的值。
//adjust More values to appropriate starting times
for (var med=1; med < medPlan.length; med++){
if(medPlan[med][2] == medPlan[med-1][2] && medPlan[med][1] == medPlan[med-1][1]){
Logger.log(med)
var interval = Math.floor(workingHours / medPlan[med][5].charAt(0));
medPlan[med][9] = interval
}//end if the same medication and the same resident
}//end for medPlan
但它也不断改变重复任务的第一行,即使Logs显示它确定了正确的行。
非常感谢任何帮助!
答案 0 :(得分:0)
是引用问题。不得不添加.slice(0)来解决问题。
medPlan.push(medPlan[medPlan.length-1].slice(0));