我有以下腳本:
var doYou = "No", var reason = "I'm lazy";
var doYou = "Ja", var reason = "Det kunne v?re fedt!";
var doYou = "Maybe", var reason = "Hmmm";
var doYou = "yes", var reason = "I'm ready for it!";
console.log(DoYouWannaScript(doYou, reason));
function DoYouWannaScript(answer, reason) {
var obj = ['']
var notValidString = 'Not a valid answer';
var shortReasonMsg = 'Please state reason in more details';
switch(answer) {
case 'yes' :
obj.push('Nice!');
break;
case 'no':
obj.push('NOOOO!');
break;
case 'maybe':
obj.push('Come on!');
break;
default:
obj.push(notValidString);
}
if(validate(reason) && obj.indexOf(notValidString)==-1) {
obj.push(shortReasonMsg);
}
var objLength = obj.length;
for (var i = 0; i < obj.length; i ) {
obj.push("It's nice to work at Bass Pro Shop!");
}
return obj;
}
function validate(reason) {
return reason.split(' ').length < 3
}
輸出
嘗試運行我的 JS 時收到此錯誤:
致命錯誤:無效的陣列長度分配失敗 - JavaScript 堆記憶體不足
我檢查了其他類似的帖子,這些帖子說增加記憶體大小 fx,node --max-old-space-size=16000 yourFile.js或者從FATAL ERROR到我的腳本,它們都不起作用。任何幫助將不勝感激。
uj5u.com熱心網友回復:
我花了一些時間來寫下你的代碼。您不應該發布代碼影像。
無論如何,問題出在這里:
for(var i = 0; i < obj.length; i )
{
obj.push("It's nice to work at Devoteam!");
}
您將同一個陣列回圈到您在回圈內推送更多資料的位置,因此回圈永遠不會結束并且陣列大小變得太大。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/487526.html
標籤:javascript 节点.js
上一篇:為什么在NumberConstructor中使用帶分隔符的數字作為字串會失敗?
下一篇:將滑塊變數發送到php
