2016-10-02 2 views
0

"InputObject"から "OutputArray"の下に作成しようとしています。私は2つのオブジェクトを変換する関数getdata()を作成しました。 これらのオブジェクトをクロームでコンソールに書き込むと、少し違った形で表示されます。スクリーンショットは以下のとおりです。ノックアウトobservableArray([])のjavascriptでオブジェクトの配列を作成

OuputObect:(これは私の所望の出力)

{ 
      "id" : "1", 
      "name" : "Name the color", 
      "q" : "what is the color white in HTML", 
      "a" : "255 255 255", 
      "video" : "http://aws.asdfsadf.com/something.mkv", 
      "images" : { 
       "title" : "White Image", 
       "url" : "http://aws.asdfsdf.com/image.jpg" 
       } 
     }, 
     { 
      "id" : "2", 
      "name" : "Name the color", 
      "q" : "what is the color black in HTML", 
      "a" : "0 0 0", 
      "video" : "http://aws.asdfsadf.com/something.mkv", 
      "images" : { 
       "title" : "White Image", 
       "url" : "http://aws.asdfsdf.com/image.jpg" 
     } 
} 

OutputObjectは、このようなクロムに表示されますにconsole.log(OutputObject)の代わりに、それを

Correct output

次のようになります。 console.log(getdata(InputObject))

Incorrect output

はInputObject:(これは、データがFireDBによって提示される方法です)

{ 
     "1" : { 
      "name" : "Name the color", 
      "q" : "what is the color white in HTML", 
      "a" : "255 255 255", 
      "video" : "http://aws.asdfsadf.com/something.mkv", 
      "images" : { 
       "title" : "White Image", 
       "url" : "http://aws.asdfsdf.com/image.jpg" 
       } 
     }, 
     "2" : { 
      "name" : "Name the color", 
      "q" : "what is the color black in HTML", 
      "a" : "0 0 0", 
      "video" : "http://aws.asdfsadf.com/something.mkv", 
      "images" : { 
       "title" : "White Image", 
       "url" : "http://aws.asdfsdf.com/image.jpg" 
       } 
     } 

    } 

函()関数...

function getdata(data){ 

    var array = []; 

    for (var key in data) { 

     var arrayObject = {}; 

     // skip loop if the property is from prototype 
     if (!data.hasOwnProperty(key)) continue; 

     var obj = jsondata.questions[key]; 
     for (var prop in obj) { 
      // skip loop if the property is from prototype 
      if(!obj.hasOwnProperty(prop)) continue; 
      arrayObject[prop] = obj[prop]; 
      } 

     arrayObject["id"] = key; 
     array.push(arrayObject) 
    } 
return array; 
} 

答えて

0

それはことが判明両方の配列が等しい場合、それらは単にクロムで異なって表示されます。

私の問題は、私が呼んでいたということでしたko.observableArray([OutputObject])

代わりの(角括弧付き):

ko.observableArray(函(OutputObject));

関連する問題