2016-07-05 2 views
0

내가 함수오류를 구문 분석 할 때 배열을 함수로 반환 하시겠습니까?

[{'visible': false},null,null,null,null,{'visible': false}] 

이에서 이와 같은 최종 출력을 얻기 위해 노력하고 기본적으로 내가 숨겨진 필요한 열 목록입니다. 그래서 필자는 보이는 컬럼의리스트를 파싱하면 위와 같은 배열을 리턴해야하는 함수를 작성해야한다. 그러므로 이것이 내가하려는 일이고 이것이 또한 효과를 발휘할 수있는 것인데, 이것이 이것이 최선의 최선의 방법인지 아닌지 알고 싶습니다.

도움을 요청하십시오. 약간의 오타에 사과하십시오, 이것이 제 첫 번째 글입니다.

// array of columns to be shown 
var arr = ["last_name", "phone", "email", "address"]; 
toggleVis(arr); 

function toggleVis(arr) { 
    //list of all the columns. 
    arr_columns = ["name", "last_name", "phone", "email", "address", "company"]; 
    arrayLength = arr.length; 
    arr_columnsLength = arr_columns.length; 
    var arr_new = []; 
    for (var i = 0; i < arr_columnsLength; i++) { 
    for (var j = 0; j < arrayLength; j++) { 
     if (arr_columns[i] == arr[j]) { 
     arr_new[i] = "null"; 
     break; 
     } else { 
     arr_new[i] = "{'visibilty:false'}"; 
     } 
    } 
    } 
} 
+0

(IE8 및 이하)는 지원되지 않습니다 [ 코드 리뷰] (http://codereview.stackexchange.com/) –

+0

당신의 코드는 다음과 같이 문자열이 아닌 객체를 반환해야한다는 사실 외에도 괜찮은 것 같습니다 :'arr_new [i] = {visibilty : false} ; –

답변

0

먼저 코드가 전반적으로 훌륭하게 보입니다.

arr_new[i] = { visibilty: false }; 

말했다되고 그건 : 나는 알 수있는 유일한 문제는 열 이름이 배열에서 발견되지 않을 때 당신은 당신의 기능에 새로운 배열을 return해야하며, 개체 대신 문자열의 각각 null를 사용한다는 것입니다

function toggleVis(arr) { 
    var arr_columns = ["name", "last_name", "phone", "email", "address", "company"]; 
    var arr_new = []; 
    for (var i = 0; i < arr_columns.length; i++) { 
     var col = arr_columns[i]; 
     arr_new[i] = arr.indexOf(col) != -1 ? null : { visibilty: false }; 
    } 
    return arr_new; 
} 

Working example

: 당신은 열 이름이 전달 된 배열이 같은 존재 여부를 확인하기 위해 두 번째 for 루프 대신 indexOf를 사용하여 코드를 더 간결 할 수 있습니다

이 여전히 배열의 map() 방법을 사용하여 짧은 만들었지 만,이주의 할 수는 이전 버전의 브라우저에서 당신에이 질문을 통해 요청해야

function toggleVis(arr) { 
    var arr_columns = ["name", "last_name", "phone", "email", "address", "company"];  
    return arr_columns.map(function(col) { 
     return arr.indexOf(col) != -1 ? null : { visibilty: false }; 
    }) 
} 
아마도

Working example

+0

null 값 자체 대신 "null"문자열을 반환하는 이유는 무엇입니까? – otajor

+0

나는 바보인데 그 값들을 너무 잊어 버렸기 때문에 :) 감사합니다. –

+0

오 OP가 한 일임을 알지 못했습니다. 어떤 이유가 있어야한다고 생각했습니다. 시원한 – otajor

관련 문제