関数は、配列(明示的に単一の引数)またはarguments
オブジェクト(暗黙のうちに、可変数の引数を持つ)の任意の値のシーケンスを受け入れることができます。明示的
- アイテムの配列を受け入れる:
function add(items) {
for (var i = 0; i < items.length; i++)
x.push(items[i]);
}
}
add([[4, "d"], [5, "e"]])
暗黙的に#1 - 単一の値として供給される任意の数のパラメータを受け入れる:
function add(/* item1, item2, .. */) {
for (var i = 0; i < arguments.length; i++)
x.push(arguments[i]);
}
}
add([4, "d"], [5, "e"])
暗黙的に#2 - 任意の数を受け入れますペアとして提供されるパラメータ:
function add(/* k1, v1, k2, v2, .. */) {
for (var i = 0; i < arguments.length; i += 2)
x.push([arguments[i], arguments[i+1])
}
}
add(4, "d", 5, "e")
Array.splice
またはconcat
役に立つかもしれません。簡潔性および一貫性のために示されていない。
連結は、forループを使用する理由私の最初の選択肢、でしょうか? – goldylucks
@ goldylucks配列を反復したり操作したりする別の方法は、関数を呼び出すことを避けるという問題には二次的です(この場合は 'addItem'関数となります)。 'concat'を使用すると、ソースが配列タプルのシーケンスではないので、表示されるvariadic-as-pairs形式の視差が追加されます。 – user2864740