我坚持使用这小段代码,这些代码本来就不应该很复杂,但是这小段JSON数据无法像其他所有代码一样进行更改。
原始JSON数据: apptData.push({ 'service':serviceName, 'duration':rawDuration, '技术':selectedTech })
我想将其合并为: findTimeSlots()
中的 finalApptData我要更改的一小段数据是: finalApptDatap [j] .service ,用于保存更多信息,但使用console.log()查看时不会更改。
在所有检查的结尾处,我都使用 console.log(finalApptData); 。
var apptData = [];
function addApptData(serviceName, rawDuration, selectedTech){
apptData.push({
'service': serviceName,
'duration': rawDuration,
'tech' : selectedTech
})
}
function reduceApptData(index){
apptData.splice(index, 1);
}
function findTimeSlots(dateStr){
var finalApptData = [];
for(var i = 0; i < apptData.length; i++){
var duplicated = false;
for(var j = 0; j < finalApptData.length; j++){
if(finalApptData[j].tech == apptData[i].tech){
//All those line changing finalApptData[j].service are from multiple attempts.
// I must have done something wrong but I'm not sure where.
**finalApptData[j].service = "changed";
finalApptData[j].service.push("apptData[i].service");
finalApptData[j].service.push(apptData[i].service);
finalApptData[j].service += apptData[i].service;
finalApptData[j].service += ", "+apptData[i].service;**
finalApptData[j].duration += apptData[i].duration;
duplicated = true;
}
}
if(!duplicated){
finalApptData.push(apptData[i]);
}
}
console.log(finalApptData);
$.post('./getTimeSlots.php', {'date': dateStr}, function(response){
console.log("Response: "+response);
});
}
答案 0 :(得分:1)
问题是apptData是一个对象而不是数组,因此像数组一样附加到该对象将不起作用。相反,我创建了一个数组并推送到该数组。
<div>
One
</div>
<div>
Two
</div>
<div>
Three
</div>