373 Stimmen

Übergabe eines Arrays als Funktionsparameter in JavaScript

Ich möchte eine Funktion mit einem Array als Parameter aufrufen:

const x = ['p0', 'p1', 'p2'];
call_me(x[0], x[1], x[2]); // I don't like it

function call_me (param0, param1, param2 ) {
  // ...
}

Gibt es eine bessere Möglichkeit, den Inhalt von x en call_me() ?

7voto

Naba Punkte 114

Bei der Verwendung des Spread-Operators ist zu beachten, dass er der letzte oder einzige übergebene Parameter sein muss. Andernfalls schlägt es fehl.

function callMe(...arr){ //valid arguments
    alert(arr);
}

function callMe(name, ...arr){ //valid arguments
    alert(arr);
}

function callMe(...arr, name){ //invalid arguments
    alert(arr);
}

Wenn Sie ein Array als Anfangsargument übergeben müssen, können Sie dies tun:

function callMe(arr, name){
    let newArr = [...arr];
    alert(newArr);
}

6voto

vsync Punkte 101339

Funktionsargumente können auch Arrays sein:

function foo([a,b,c], d){
  console.log(a,b,c,d);
}

foo([1,2,3], 4)

Natürlich kann man auch Verbreitung :

function foo(a, b, c, d){
  console.log(a, b, c, d);
}

foo(...[1, 2, 3], 4)

6voto

Ashton Drye Punkte 21

Können Sie die Spread-Syntax verwenden

zum Beispiel:

function print(...inpu){
console.log(...inpu)
}
var arry = ['p0','p1','p2']
print(...arry)
Hier ist der Link: modzilla spread syntax refrence document

4voto

ali.b.y Punkte 59

Beachten Sie dies

function FollowMouse() {
    for(var i=0; i< arguments.length; i++) {
        arguments[i].style.top = event.clientY+"px";
        arguments[i].style.left = event.clientX+"px";
    }

};

//---------------------------

html-Seite

<body onmousemove="FollowMouse(d1,d2,d3)">

<p><div id="d1" style="position: absolute;">Follow1</div></p>
<div id="d2" style="position: absolute;"><p>Follow2</p></div>
<div id="d3" style="position: absolute;"><p>Follow3</p></div>

</body>

kann Funktion mit beliebigen Args aufrufen

<body onmousemove="FollowMouse(d1,d2)">

o

<body onmousemove="FollowMouse(d1)">

2voto

rman Punkte 125

Können Sie den Spread-Operator in einer einfacheren Form verwenden

[].concat(...array)

im Falle von Funktionen, die Arrays zurückgeben, aber als Argumente übergeben werden sollen

Ejemplo:

function expectArguments(...args){
  return [].concat(...args);
}

JSON.stringify(expectArguments(1,2,3)) === JSON.stringify(expectArguments([1,2,3]))

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X