2013-03-11 1 views
-1

여러 인수를 사용할 수있는 API 메서드가 있지만 이러한 인수는 배열이어야합니다. 내가하고 싶지 않은 것은 각 배열에 대해 각각의 api.someMethod()를 호출하는 것입니다. 예를 들어배열 목록 반환

:

function getArrays() { 
    var arr1 = ['1','2','3']; 
    var arr2 = ['4','5','6']; 
    var arr3 = ['7','8']; 

    return [ arr1, arr2, arr3 ] 
} 

나는 명확성의 부족을 끼쳐 드려 죄송합니다. 나는 전화 해요 : 어떻게됩니까

api.someMethod(getArrays()) 

내 복귀는 '것으로 someMethod'로 허용되지 않습니다 배열 내 배열, 쉼표로 구분 된 배열의 목록을 기대하고있다 감싸고 있다는 것입니다.

api.someMethod(arr1, arr2, arr3); 
+1

3 개의 배열이있는 객체를 속성으로 반환하는 방법은 어떻습니까? 다음과 같이 :'var x = {arr1 : arr1, arr2 : arr2, arr3 : arr3}; return x;' – Rob

+0

이미 밑줄을 사용하고 있다면'._union (arr1, arr2); http://underscorejs.org/#union – jantimon

+0

당신이 원하는 것이 무엇인지 알 수 없음 –

답변

1

사용 apply 대신 call. 그런 다음 각 인수를 별도의 인수로 만드는 대신 배열 배열을 전달할 수 있습니다.

api.apply(context, [[arr1], [arr2], [arr3]]); 

수정 된 질문에 대한 응답으로 편집하십시오. (직접 메소드를 호출하는 경우가 될 것이다) 컨텍스트로

사용 api을 :

가 취할 수있는 방법입니다. 내가하고 싶지 않은 어떤

api.someMethod.apply(api, getArrays()); 
+0

OP는 실제로'call ','.arbitraryMethod'의 자리 표시 자처럼 보입니다. – bfavaretto

+0

@bfavaretto - 당신이 옳을 수도 있습니다. 질문은 다소 모호하고 추상적 인 용어로되어 있습니다. – Quentin

+0

명확성이 부족하여 사과드립니다. 원래 질문을 수정했습니다. – hybrid9

0

모든 배열 각 api.call를 호출입니다 - 나는 하나의 호출에 함께 덩어리 것을 시도하고있다.

다음과 같은 방식으로 처리 할 수있는 인수의 변수 양 함수 (만약 당신이 원하는 경우) 하나의 배열을 반환으로

function variableArgs(){ 
    console.log(arguments.length); 
    for(var i =0;i<arguments.length;i++){ 
    console.log(arguments[i]); 
    } 
} 
variableArgs("hello") 
variableArgs("hello","there","how","are","you"); 

을 수행 할 수 있습니다

function variableArgs(){ 
    var ret=[]; 
    for(var i =0;i<arguments.length;i++){ 
    console.log("ret is:",ret); 
    //processing 
    ret=ret.concat(arguments[i]); 
    } 
    return ret; 
} 
console.log("result of variableArgs is:",variableArgs([1,2],[3,4],[5,6]))