1

ループを介して実行時にオブジェクトに配列を保存したい。

たとえば、入力を配列に取り、inp=[2, 7, 20, 15, 19]それを に保存したいとしますobj={0:2, 1:7, 2:20, 3:15, 4:19}。しかし、私が持っているような実行時に

    for(i=0;i<inp.length;i++) 
    { save each element of array into the respective object element } 

問題は、さまざまな長さの配列を保存する必要があることです。これらの配列は、ユーザーからの入力に由来します。

また、後でオブジェクトをソートし、コード内の別の配列にインデックスを返します。実行時にオブジェクトに配列を保存する方法だけに固執しています。手がかりを求めていろいろ探しましたが、何も見つかりませんでした。

4

2 に答える 2

1

配列はすでにオブジェクトです

いくつかの実験を行うと、次のことがわかります。

typeof([]) //<--retruns "object"
于 2012-04-15T02:14:13.083 に答える
1
  • 自動割り当て:(クレジット:私ではありません

    var obj = inp.slice();
    
  • 手動割り当て:

    var obj = {};
    for(var i=0, n=inp.length; i<n; i++) 
       obj[i]=inp[i];
    

配列は技術的にはJavaScriptのオブジェクトのサブクラスですが、配列からオブジェクトに移行する際に実際に発生するのは、配列の間に作成されたネイティブメソッド(、、、など)indexOfconcat失われることだけです。reverse工事。

于 2012-04-15T02:16:27.730 に答える