2016-07-05 13 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

まだ配列のmap()方法を使用して短くしたが、これは古いブラウザ(IE8以下)でサポートされていません注意してくださいすることができますコードレビュー](http://codereview.stackexchange.com/) –

+0

あなたのコードは、次のように文字列ではなくオブジェクトを返す必要があるという点を除いて、うまくいきます: 'arr_new [i] = {visibilty:false} ; ' –

答えて

0

まず、コード全体がきれいに見えます。私が気づく唯一の問題は、あなたがあなたの関数で新しい配列をreturnべきであるということです、そしてカラム名が配列に見つからないときは、文字列の代わりに、それぞれのオブジェクトとnullを使用する必要があります。

arr_new[i] = { visibilty: false }; 

言われていること

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

:あなたは、列名は、渡された配列にこのようなものが存在するかどうかを確認するために、第2 forループの代わりに indexOfを使用してコードより簡潔にすることができます

これはおそらく、あなた[でこの質問を超える尋ねるべき

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

関連する問題