2017-09-04 1 views
0

함수를 호출하고 싶습니다. 변수 개수만큼의 인수를 허용하는 test_func라고 말하면됩니다. (이 기능처럼 http://locutus.io/php/array/array_intersect_assoc/)변수 개수가있는 함수 인수 목록을 프로그래밍 방식으로 생성하는 방법은 무엇입니까?

수신 기능을 수정하지 않도록하십시오. 모든 답변은 지금까지 연결된 "가능한 속임수"처럼 수신기 기능을 수정해야합니다. 프로그래밍 방식으로 인수 목록 자체를 생성하고 싶습니다. (예 : 객체의 가변 개수 전달)

나는 얼마나 많은 인수를 가질 지 미리 알지 못합니다. 객체로 가변 길이의 인수를 생성하려면 어떻게해야합니까?

var v1 = {test:1}; 
 
var v2 = {test2:2}; 
 
var obj_arr = [v1,v2]; 
 
console.log(test_func (obj_arr.join(","))); 
 

 
//in my case this should be the equivalent of test_func (v1,v2); 
 

 
function test_func (object_arg) { 
 
    return(arguments.length); 
 
    } 
 
//should return 2!

+0

수신 기능을 수정하지 않도록하십시오. 지금까지의 모든 대답은 리시버 기능과 링크 된 가능한 속임수를 수정해야합니다. – giorgio79

+0

console.log (obj_arr.length); 그 길이 줄 것입니다, 당신이 원하는 무엇입니까 ?? –

+1

@ giorgio79이 경우 유일한 옵션은 배열/객체의 모든 인수를 수동으로 병합하고 – Rajesh

답변

0

당신이 ES5 환경에 있다면 당신이 사용할 수있는 인수 : 당신이 ES6 환경 중 하나를 수행 할 수 있습니다 사용중인 경우

function test() { 
 
    var param1 = arguments[0]; 
 
    var param2 = arguments[1]; 
 
    // arguments is array like, you can iterate over it with a loop 
 
}

Suren이 제안한 나머지 연산자 또는 위의 인수 변형을 사용합니다. 당신이 대회에 참석하고 있습니다.

관련 문제