2013-12-09 1 views
0

배열을 Worklight 어댑터에 전달하면 배열에서 값을 검색 할 수 없습니다.워크 라이트 Javascript 어댑터 : 어댑터에 매개 변수로 전달 된 배열 값을 검색 할 수 없습니다.

function getlist(list) { 
    ... 
} 

목록 배열입니다 :

내 -impl.js 파일 내부에, 나는 같은 함수를 만듭니다. 그리고 내 어댑터에서, 나는 값을 출력하려고합니다.

WL.Logger.info(list); 
WL.Logger.info(list.arr); 

이 출력은 같은 :

[INFO ] { 
"arr": [ 
    { 
    "a": "...", 
    "b": "..." 
    }, 
    { 
    "a": "...", 
    "b": "..." 
    }, 
    { 
    "a": "...", 
    "b": "..." 
    }, 

    ] 
} [project test] 
[INFO ] undefined [project test] 

난 그냥 그것을 얻을하지 않습니다. 목록이 처음 출력됩니다. 그러나 list.arr은 두 번째이며 undefined라고 말합니다. list.arr이 정의되지 않은 이유는 무엇입니까?

무엇이 잘못 되었습니까?

적인 버전의 WL : 6.0.0.20130614-0631

+0

내가 잘못 읽고 있지만 목록이 배열이 아니라 객체로 보입니다. 중괄호 {}는 객체를 지정하고 대괄호 []는 배열을 지정합니다. 확인 할수 있어요? 편집 : 아, 당신은 함수에 매개 변수로 목록을 말하고 있었다. '[arr'] 목록을 로그하면 작동합니까? – isick

+0

typeof list 란 무엇입니까? 배열이 문자열 화되어 있습니까? JSON.parse (목록)는 무엇을 반환합니까? –

답변

1

내에서 인수가 배열된다. 그러나 WL.Logger. *()의 출력은 항상 객체이어야합니다 (기본 JS 엔진에 의해 위임 됨). 그래서 배열은 목적을 위해 객체로 변환됩니다. 예 : 목록 객체 인 경우

[1,2,3]

WL.Logger.debug (목록)입니다

{편곡 : [1,2,3]}

원래 개체는 수정되지 않고 배열로 유지됩니다. 목록 [0], 목록 [1] 등으로 요소를 가져올 수 있습니다.