最近在練習javascript
題目為連結
想請問題解中
while(!store[n] && n!=1){
store[n] = n;
n.toString().split("").forEach(function(v,i){
if(i == 0) {n = 0};
n += v*v;
})
n = parseInt(n);
}
if(i == 0) {n = 0};
這一段主要是在判斷什麼情況,謝謝
n.toString().split("");
上面程式碼將數字分割成字串
例如: 14 => var arr =new Array["1", "4"];
forEach(function(v,i){
if(i == 0) n = 0;
n += v*v;
})
v 代表 陣列
i 代表 index目前索引(int)
if(i == 0) {n = 0};
這一段主要是
代表此數歸0 因為之前n有計算出值 在此就歸0
你要相加之前不是應該要有個變數去存現在的總和是多少嗎
這個變數在跑每個平方的值之前要宣告為零
這個寫法是偷懶把零寫在裡面...
其實跟下面這段是一樣的
var sum = 0
n.toString().split("").forEach(function(v,i){
sum += v*v;
})
n = sum