gpt4 book ai didi

javascript - 遍历对象时遇到问题

转载 作者:行者123 更新时间:2023-11-28 19:45:25 25 4
gpt4 key购买 nike

我有一个看起来像这样的对象:

salesDetails:{ "1":{
"date":"06/22/2014",
"amount":"45",
"currency":"CAD",
"productID":"23",
"status":1},
"2":{
"date":"06/22/2014",
"amount":"120",
"currency":"USD",
"productID":"23",
"status":1},
"3":{
"date":"06/23/2014",
"amount":"100",
"currency":"USD",
"productID":"21",
"status":2},
"4":{
"date":"06/23/2014",
"amount":"250",
"currency":"CAD",
"productID":"25",
"status":1},
"5":{
"date":"06/23/2014",
"amount":"180",
"currency":"USD",
"productID":"24",
"status":1}
}

我想做的是获取所有状态为“1”的货币的所有金额,并将其放入应如下所示的对象中:

perCurrency: {
"CAD":{
"0":"45",
"1":"250"},

"USD":{
"0":"120",
"1":"180"}
}

我能够将所有货币放入一个对象中,但我在金额方面遇到了麻烦,对象中的最后一个金额与前一个金额重叠。我不断收到 {"CAD":{"1":"250"},"USD":{"1":"180"}} 到目前为止,这是我的代码。

function countPerCurrency(){
var currencyArray = new Array();
var perCurrency = {};

var totalSales = Object.size(salesDetails);

for(var i=1; i <= totalSales; i++){
var currency = salesDetails[i]["currency"];
var amount = salesDetails[i]["amount"];
var status = salesDetails[i]["status"];

var totalCurrency = Object.size(currencyAmount[currency]);
var currencyCtr = {};

if(status == 1){
if(!inArray(currency, currencyArray)){
currencyArray.push(currency);
currencyCtr[totalCurrency] = amount;
perCurrency[currency] = currencyCtr;
} else {
var currencyAdd = {};
currencyAdd[totalCurrency] = amount;
perCurrency[currency] = currencyAdd;
}
}
}
}

我知道这可能看起来很容易,但我在这里迷路了..TIA! :)

最佳答案

之前接受的答案使用一个值数组,而您要求一个对象。这是一个对象版本:

var perCurrency = {};
var currencyCount = {};

Object.keys(salesDetails).forEach(function(key) {
var obj = salesDetails[key];
var currency;

if (obj.status == 1) {
currency = obj.currency;

// If this is first for this currency, add it to objects
if (!currencyCount[currency]) {
currencyCount[currency] = 0;
perCurrency[currency] = {};
}

// Add currency values
perCurrency[currency][currencyCount[currency]++] = obj.amount;
}
});

顺便说一句,这与 jQuery 无关。

请注意,Object.keys 是 ES5,因此可能需要针对旧版浏览器的 polyfill,请参阅 MDN:Object.keys代码。

关于javascript - 遍历对象时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24358934/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com