1. ホーム
  2. javascript

[解決済み] JavaScript の関数に未知の数の引数を渡す

2023-02-16 07:16:46

質問

未知の数の引数を渡す方法はありますか?

var print_names = function(names) {
    foreach(name in names) console.log(name); // something like this
}

print_names('foo', 'bar', 'baz');

また、渡された引数の数はどのように取得するのでしょうか?

どのように解決するのですか?

ES3 (または ES5 または古いタイプの JavaScript)

JavaScript の関数に渡される引数には、魔法のような仕組みでアクセスできます。 arguments オブジェクトでアクセスできます。これは配列と同じように動作します。 このオブジェクトは配列と同じように動作します。 arguments を使うと、関数は次のようになります。

var print_names = function() {
     for (var i=0; i<arguments.length; i++) console.log(arguments[i]);
}

ここで重要なのは arguments ではなく であり、配列です。 MDCにはそれに関する良いドキュメントがあります。 https://developer.mozilla.org/en/Core_JavaScript_1.5_Guide/Functions#Using_the_arguments_object

もしあなたが arguments を配列に変換して、次のようなことができるようになります。 .slice() , .push() などは、このようなものを使ってください。

var args = Array.prototype.slice.call(arguments);

ES6 / タイプスクリプト

もっといい方法がある! 新しい のリスト・パラメータ 機能は、あなたの背中を押してくれます。

var print_names = function(...names) {
    for (let i=0; i<names.length; i++) console.log(names[i]);
}