我有一个perl哈希,我正在循环并构建一个JavaScript数组。当我启动时,JavaScript数组的长度为0;然而,它在第一次过去迅速增长到1001,在第二次过程中迅速增长到1001,在第三次传递中快速增长到4001。我期待长度为3!下面是代码和perl哈希。
var offers = [];
% foreach my $amount (keys %$offers) {
offers['<% $amount %>'] = [];
console.log(offers.length);
% }
{
'1000'=>{
'6'=>{
'payment'=>'173.49',
'fee'=>'2',
'APR'=>'13.9'
},
'4'=>{
'payment'=>'256.23',
'fee'=>'2',
'APR'=>'11.9'
}
},
'2000'=>{
'6'=>{
'payment'=>'346.98',
'fee'=>'2',
'APR'=>'13.9'
},
'4'=>{
'payment'=>'512.46',
'fee'=>'2',
'APR'=>'11.9'
}
},
'4000'=>{
'6'=>{
'payment'=>'693.96',
'fee'=>'2',
'APR'=>'13.9'
},
'4'=>{
'payment'=>'1024.92',
'fee'=>'2',
'APR'=>'11.9'
}
}
};
答案 0 :(得分:1)
尝试
var offers = [];
% foreach my $amount (keys %$offers) {
offers.push('<% $amount %>');
console.log(offers.length);
% }
答案 1 :(得分:1)
我认为你想要的是一个关联数组/对象。如果您希望通过offers['1000']
等代码识别数据,但却没有1,000个元素,那么您只需要初始化这样的商品:
var offers = {};
并保持其余代码不变。不再有长度属性,但您只会为每个存储的项目创建一个条目而不是1,000个。
您可以通过以下方式迭代数据:
var offer;
for (offer in offers) {
/* do something with offers[offer] here */
}