我的指令,試圖寫屬性的數組不存在,顯然該指令的控制器之前發射。標記爲關閉。
我有兩個功能。他們都採取了大規模的JSON對象,其中之一則切換到格式:
[{ date: 'date', count_0: '10' },
{ date: 'date', count_0: '10' }]
其他功能改變JSON對象格式爲:
[{ date: 'date', count_0: '10', count_1: '20', count_2: '30' ... },
{ date: 'date', count_0: '10', count_1: '20', count_2: '30' ... }]
這裏的怪異的一部分。 我只調用第一個函數,但是我的程序正試圖產生第二個函數的格式。
其他函數在我的代碼中,但我知道它沒有被調用,因爲它裏面有一些alert
函數沒有觸發。
這是一個澄清,使我的問題更清晰。下面是第一個函數... (for... in)
垃圾和條件語句的一串:
function firstFunction(data, sort, campaign) {
var transformed_data = [];
// Loop through the original data
for(var d in data) {
var obj = data[d];
// If you have the correct campaign data
if(obj.name === campaign) {
// For each data entry in this object
for(var obj_d in obj.data) {
var obj_data = obj.data[obj_d];
// Create a temporary transformed object to hold the proper data
var transformed_obj = {
date: obj_data.date,
count_0: obj_data[sort]
}
// This console log shows the transformed_obj in the expected format
console.log(transformed_obj);
// Push the temporary object into the helper array
transformed_data.push(transformed_obj);
// This console log flips a shit
console.log(transformed_data);
}
}
}
// Return helper array
return transformed_data;
}
第一個控制檯登錄該功能顯示正確的格式:
Object {date: "2013-01-01", count_0: 17147}
第二控制檯日誌這表明:
[Object]
好了,這樣好遠...讓我們展開......
擴展:
0: Object
1: Object
2: Object
3: Object
4: Object
5: Object
6: Object
7: Object
什麼?這預計不會在所有...不知道如果我們擴大這些對象中的一個發生了什麼......
擴展對象:
count_0: 17147
count_1: NaN
count_2: NaN
count_3: NaN
count_4: NaN
count_5: NaN
date: Mon Dec 31 2012 19:00:00 GMT-0500 (EST)
什麼????爲什麼它試圖寫count_1
到count_5
?這裏可能是什麼問題?有任何想法嗎?
如果有幫助,我可以添加更多代碼。謝謝你 -
您能否展示一些示例數據和函數調用,以便我們可以嘗試自己查看結果?如果你無法嘗試,調試有點困難。 – JJJ
我會嘗試編譯一些並將其添加到問題中。 –
請勿使用'for ... in'循環遍歷數組。使用普通的'for'循環與索引變量或'.forEach()'方法(在較新的瀏覽器中)。 – Pointy