我一直在努力與這一過去的一天,我似乎無法使它的工作。以下代碼總是返回false。我試過hasOwnProperty
,typeof === 'undefined'
,typeof == 'undefined'
,我甚至試過只用looped_array[major_minor]['sum_sales']
。我從來沒有得到循環的添加部分。它總是返回false。如果在數組中的鍵,然後將其設置它添加到它
爲了討論起見,我們只是說我已經被委託在純JavaScript中執行此操作。我可以在PHP和Python中輕鬆完成此操作,但我無法使用它們。這可能是我的問題,我試圖使用PHP知識並將其應用於js。我不是一個JavaScript程序員,但我需要學習。
我需要遍歷數千條記錄並從它們中構建一個總和數組。
我的原始數據看起來像
item['net_price_extended']
item['pg_major']
item['pg_minor']
major_minor是像這樣
var major_minor = item['pg_major'] + '' + item['pg_minor'];
代碼我想現在創建不起作用
if('sum_sales' in looped_array[major_minor]) {
console.log("should be true");
console.log('sum_sales' in looped_array[major_minor]);
looped_array[major_minor]['sum_sales'] += parseFloat(item['net_price_extended']);
} else {
console.log("should be false");
console.log('sum_sales' in looped_array[major_minor]);
looped_array[major_minor]['sum_sales'] = parseFloat(item['net_price_extended']);
}
所有代碼for the loop
for(r in margin_array) {
var item = margin_array[r];
var major_minor = item['pg_major'] + item['pg_minor'];
looped_array[major_minor] = {};
looped_array[major_minor]['pg_major'] = item['pg_major'];
looped_array[major_minor]['major_description'] = item['major_description'];
looped_array[major_minor]['pg_minor'] = item['pg_minor'];
looped_array[major_minor]['minor_description'] = item['minor_description'];
/************************
* Calculate the totals *
************************/
if(looped_array[major_minor] && looped_array[major_minor]['sum_sales']) {
looped_array[major_minor]['sum_sales'] += parseFloat(item['net_price_extended']);
} else {
looped_array[major_minor]['sum_sales'] = parseFloat(item['net_price_extended']);
}
}
我可能會誤解這裏的問題。你是否在一開始就知道所有可能的領域?如果你這樣做,你可以在循環之前將它們都設置爲0。 –
我確實知道所有的字段,但是我想在一個循環中執行,而不是爲了性能原因而使用兩個字段。 –
如果您提供了重新創建問題的完整代碼示例,這將有所幫助。 – Blazemonger