1

私はループしてJavaScript配列を構築しているperlハッシュを持っています。JavaScript 配列は、開始時に長さ 0 から始まります。ただし、1 回目で 1001、2 回目で 2001、3 回目で 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'
        }
    }
};
4

2 に答える 2

1

あなたが望むのは連想配列/オブジェクトだと思います。のようなコードでデータを識別したいが、offers['1000']1,000 個の要素を持たない場合は、次のようにオファーを初期化するだけです。

var offers = {};

残りのコードは変更しないでください。長さのプロパティはなくなりますが、格納されるアイテムごとに 1,000 ではなく、1 つのエントリのみを作成することになります。

次のようにして、データを反復処理できます。

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

試す

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