"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)の代わりに、それを
次のようになります。 console.log(getdata(InputObject))
は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;
}