function statsForDays(data) {
var days = {};
var currentDate;
var lastValue;
for (var i=0, l=data.length; i<l; i++) {
var element = data[i];
var timestamp = element[0];
var value = element[1];
var date = new Date(timestamp);
if (!lastValue) lastValue = value;
if (currentDate != date.getDate()) {
currentDate = date.getDate();
days[String(date.getMonth()+1)+'-'+String(currentDate)] = value - lastValue;
lastValue = value;
}
}
return days;
}
任何人都可以向我解釋上述函數是如何工作的?我知道它是如何產生的,但想知道if (!lastValue) lastValue = value;
在函數中做了什麼?它似乎是一種算法,但它是如何工作的?因爲lastvalue
被設置爲等於value
爲什麼以後在days[String(date.getMonth()+1)+'-'+String(currentDate)] = value - lastValue;
之間將它們彼此相關?爲什麼然後再次平等呢?if NOT語句的用法
@freefaller這個問題在這裏是** on-topic ** per [help/on-topic],以及關於程序員的話題。如果您不瞭解其範圍,請不要推薦網站:[** Programmers.SE上發生了什麼? Stack Overflow的指南**](http://meta.programmers.stackexchange.com/questions/7182/what-goes-on-programmers-se-a-guide-for-stack-overflow) – durron597
道歉@ durron597 – freefaller
如果lastValue的值爲undefined,null,「」(空字符串),false,NaN或0,那麼'lastValue'將爲true,因爲每個eval的布爾表示形式爲'false' – Hacketo