JavaScript の関数に配列を渡す
-
JavaScript で
apply()
メソッドを使用して関数に配列を渡す -
spread
演算子を使用して、JavaScript の関数に配列を渡する -
JavaScript で
arguments
オブジェクトを使用して関数に配列を渡す
このチュートリアルは、JavaScript を使用して配列を関数に渡すさまざまな方法を教えることを目的としています。apply()
メソッド、spread
演算子、arguments
オブジェクト、および配列全体をパラメーターとして関数に渡す方法を強調しています。
apply()
メソッドは、this
値を使用して関数を実行し、配列または配列のようなオブジェクトとして arguments
を提供します。渡さなければならない特定の関数で使用されます。
apply()
メソッドでは、this
値が関数を呼び出す最初のパラメーターであり、arguments
が渡される引数の配列を持つ 2 番目のパラメーターです。
this
値が関数から見た元の値にできない場合(メソッドが非厳密モードコードの関数である場合)、覚えておいてください。グローバルオブジェクトは null
と undefined
になり、プリミティブ値はボックス化されます。
ECMAScript 6(ES6)は、spread
という名前のすばらしい演算子を提供します。JavaScript コード内では ...
と記述されています。この演算子は、たとえば配列を反復可能にします。これは、すべての配列要素またはオブジェクトを処理するために使用されます。
一方、arguments
オブジェクトは配列のような(つまり、arguments
には length
プロパティがあります)オブジェクトであり、引数の値を持つ関数内で使用できます。
JavaScript で apply()
メソッドを使用して関数に配列を渡す
var names = ['Mehvish', 'John', 'Henry', 'Thomas'];
displayName.apply(this, names);
function displayName() {
for (var i = 0; i < names.length; i++) {
console.log(names[i]);
}
}
出力:
"Mehvish"
"John"
"Henry"
"Thomas"
上記の例では、names
の配列と displayName()
という名前の関数があり、names
配列のすべての要素を出力します。apply()
メソッドを使用して、配列を displayName()
関数に渡します。
spread
演算子を使用して、JavaScript の関数に配列を渡する
var names = ['Mehvish', 'John', 'Henry', 'Thomas'];
displayName(...names);
function displayName() {
for (var i = 0; i < names.length; i++) {
console.log(names[i]);
}
}
出力:
"Mehvish"
"John"
"Henry"
"Thomas"
ここでは、すべての配列要素を出力するための names
配列と displayNames()
関数が再びあります。spread
構文 ...
を使用して、配列全体を関数に渡します。
JavaScript で arguments
オブジェクトを使用して関数に配列を渡す
var names = ['Mehvish', 'John', 'Henry', 'Thomas'];
displayName(names);
function displayName() {
for (var i = 0; i < arguments.length; i++) {
console.log(arguments[i]);
}
}
出力:
["Mehvish", "John", "Henry", "Thomas"]
上記のコードスニペットでは、arguments
オブジェクトを使用して、names
配列を displayName()
関数に渡します。コードを単純化するために、配列全体を引数として関数に渡すことができます。
このために、次のコードを練習できます。
var names = ['Mehvish', 'John', 'Henry', 'Thomas'];
displayName(names);
function displayName() {
for (var i = 0; i < names.length; i++) {
console.log(names[i]);
}
}
出力:
"Mehvish"
"John"
"Henry"
"Thomas"