2016-10-28 8 views
0

各関数が渡すパラメータの数は不確実です。したがって、私は引数オブジェクトを使用しています。問題は、配列にプッシュしながら各値を割り当てる必要があることです。javascript組み込み引数を適切に使用する方法は?

引数の値は、loop:arguments [i]の内部で次のように取得されます。では、この値をキーに割り当てる方法は?以下

map: function() { 

       var mappedData = []; 
       for (var i = 0; i < arguments.length; i++) { 

コンソールログには、すべての値に

    console.debug(arguments[i]); 

を与えるが、私は以下のようなキーに各値を代入する必要があります。どのようにすれば してください?

     mappedData.push({ 

         'id': arguments[0], 
         'name': arguments[1], 
         'text': arguments[2], 
         'notification': arguments[3], 
         'lastseen': arguments[4], 
         'avatar': arguments[5] 
        }); 
       } 


      }, 

私は マップ関数の内部ループのために削除するためにある、自分で答えを見つけました。そうすれば、私は引数は、[1]と キー

に割り当てるアクセスすることができます。しかし、インデックス

、私は失敗し
+0

のですか? – guest271314

+0

@ guest271314、私のポストを見てください。引数はキー – 112233

+0

の配列に保存されるでしょう。おそらく 'i ++'の代わりに 'i + = 6'が必要なのでしょうか?しかし、本当に、私はあなたが何をしようとしているのか分かりません。関数を呼び出す方法と出力が期待される方法の例を提供してください。 – Bergi

答えて

-1

で各引数を呼び出すことがなく、これより良い答えがあるかどうかはわかりませんこれをしたいと思っている背後にある論理を見てください。渡された引数が所定のオブジェクトで使用される場合、関数にoptsパラメータを渡すのはなぜですか?

map: function(opts){ 
    var mappedData = [] 
    mappedData.push(opts) 
} 

はそれを呼び出す:関数に渡されたパラメータが正しく動作する機能のために要求されないとき

map({ ... }) 

argumentsパラメータを使用する必要があります。

+0

そこに各値にキーを割り当てる方法はありませんか? – 112233

+0

関数に送信されたオブジェクトの値を渡します。 'map({" id ":x、" name ":" foo "})'などです。または単に関数 'map:function(id、name、text、notification、lastseen、avatar){...}'を作成することができます。 – Baruch

+0

私はこのようにしたくありません。私は引き続き引数オブジェクトを使用する必要があると思います。そしてマップ関数はキーの割り当てを処理する必要があります。 – 112233

1

argumentsの値をspreadの要素に設定して構造体を代入すると、プロパティーをargumentsとしてソースiterableとして展開できます。ターゲットを配列内のオブジェクトのプロパティとして返します。

function map() { 
 
    let [id, name, text, validation, lastseen, avatar] = [...arguments]; 
 
    let mappedData = [{id, name, text, validation, lastseen, avatar}]; 
 
    return mappedData 
 
} 
 
let res = map("a", "b", "c", "d", "e", "f"); 
 
console.log(res);

+0

'[... arguments]'は単に 'arguments'でなければなりません。もちろん、このアプローチでは 'arguments'オブジェクトを使用しないで、これらの名前をすべてパラメータとして直接宣言します。 – Bergi

0

ここにあなたが_ "キーにこの値をそれぞれ割り当てる?" _とはどういう意味ですか、私が何を意味するか

function map(){ 
       var mappedData = []; 
       var obj = {}; 
       for (var i = 0; i < arguments.length; i++) 
       { 
        console.log(i + " "+ arguments[i]); 
        if (i % 6 == 0) 
         obj.id = arguments[i]; 
        if (i % 6 == 1) 
         obj.name = arguments[i]; 
        if (i % 6 == 2) 
         obj.text = arguments[i]; 
        if (i % 6 == 3) 
         obj.notification = arguments[i]; 
        if (i % 6 == 4) 
         obj.lastseen = arguments[i]; 
        if (i % 6 == 5) 
        { 
         obj.avatar =arguments[i]; 
         mappedData.push(obj); 
         obj = {}; 
        } 

        if(i+1 == arguments.length && (i % 6 != 5)) 
        { 
         mappedData.push(obj); 
        } 
       } 
         return mappedData; 
      } 
関連する問題