我必須獲取最近幾周基於每週的一些記錄,並且必須將一週記錄中的值添加到數組中。所以,我宣佈6陣列存儲6周的記錄。我的代碼是:將循環結果添加到數組並在最後一個循環後顯示添加元素的總和
var w_0 = [];var w_1 = [];var w_2 = [];var w_3 = [];var w_4 = [];var w_5 = [];
var myTotal = 0;
var arr_name = "";
for(var j=0;j<=5;j++)
{
var start_date="";
var end_date="";
//code to fetch the records added between start_date,end_date
//there may be more that one record
var count = getRecordCount(); //My function
//following loop is to fetch value from a record
for(var i=0;i<count;i++)
{
var val1 = getRecordByIndex(i).getValue("rem_val"); //getRecordByIndex() and getValue() are our pre-defined functions.
//here I want to push the values into the array w_0
arr_name = "w_"+j;
[arr_name].push(val1); //this is not working
alert([arr_name]); //showing 'w_0'
}
//and here I want to sum all the array elements when i reaches its maximum
for(var a=0;a<[arr_name].length; a++){
myTotal += parseInt([arr_name][a]);
}
alert("Total value of week"+j+"="+parseInt(myTotal));
}
如何將內循環的值添加到基於外循環的數組?
您不能按名稱訪問變量。你爲什麼不使用二維數組? – Barmar
'[arr_name]'不是對名稱在'arr_name'中的數組的引用。它是一個包含'arr_name'中的字符串的數組。 – Barmar
'[「string」]'創建一個包含「string」的數組。如果我們改變你的代碼,改爲使用'var a = [「string」]; a.push(「val」);'我們最終會用'[「string」,「val」]''。這就是你的代碼目前所做的;它會創建一個包含字符串的數組(它等於數組變量的名稱),它不會被分配給任何變量本身,然後將'val1'推入其中。 –