1

我有一个 perl 哈希,我正在循环并构建一个 JavaScript 数组。当我启动它时,JavaScript 数组的长度为 0;但是,它很快增长到第一个过去的 1001,第二个过去的 2001,第三个过去的 4001。我希望长度是3!下面是代码和 perl 哈希。

代码

var offers = [];
%  foreach my $amount (keys %$offers) {
     offers['<% $amount %>'] = [];
     console.log(offers.length);
%  }

Perl 哈希

{
    '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'
        }
    }
};
4

2 回答 2

1

尝试

var offers = [];
%  foreach my $amount (keys %$offers) {
     offers.push('<% $amount %>');
     console.log(offers.length);
%  }
于 2013-05-06T19:04:37.920 回答
1

我认为你想要的是一个关联数组/对象。如果您希望通过代码识别数据offers['1000'],但又没有 1,000 个元素,那么您只需像这样初始化报价:

var offers = {};

并保持其余代码不变。将不再有长度属性,但您将只创建一个条目,而不是为每个要存储的项目创建 1,000 个条目。

您可以通过以下方式遍历数据:

var offer;
for (offer in offers) {
/* do something with offers[offer] here */
}
于 2013-05-06T20:57:01.210 回答