2017-06-19 16 views
0

を立ち往生させ配列のキーとしてnumeric.toStringを()を使用しない自分自身のようなものをやって、私を見つけましたインデックスルックアップを使用するだけでジョブが原因です。私が見つけたのは、たとえ私がtoString()と呼んでいても、インデックスが変換されて(?)/ intとして扱われ、スクリプトがスタックされてしまいます(私は100%確信していません。完了して、クロムにスタックスクリプトダイアログを表示させます)。はなぜ私のスクリプトは

これを修正するには、unixTimeStamp = 'idx_' + unixTimeStampを実行しました。これは問題ではありませんが、私はこの振る舞いを理解したいと思います。

+0

'dueJobs'はどのように初期化されていますか?あなたはMCVEを提供できますか? – CollinD

+2

dueJobsは配列であると考えられます。 (プッシュは余計なようですか?) dueJobsを代わりにオブジェクトにする場合、インデクサーは文字列(プロパティ) –

+1

@ Me.Nameとして扱われなければなりません。 – CollinD

答えて

1

dueJobsが配列の場合、インデックス設定子[]は可能な限り引数を整数として扱います(dueJobsへの最初のプッシュは不要です)。対象になった場合は、プロパティは、文字列

var arr= ['a'], obj = {0:'a'},prop = '1'; 
 

 
arr[prop] = 'b'; 
 
console.log(arr); 
 

 
obj[prop] = 'b'; 
 
console.log(obj);

として扱うことができます。しかしES6が許可されている場合、Mapは次のように使用することができた(letが使用されているので、のようです)よく

+0

これはありがとう、最初のプッシュが必要ではなかったのは間違いない。 – webnoob

関連する問題