在你的函數的第一部分,
function objectsToArray(objects) {
var outPutArray = createArray(objects.length, objects[0].length);
它看起來像我們假定你是objects
已經是一個二維數組。我將假設objects
是一個像這樣的對象的一維數組。 [{prop:value...},{...},{...}]
。
現在你想要做的是從這些數據生成2個數字指數。您需要確保2D數組的「第1列」對於所有對象都是相同的屬性。
所以你的第一個for循環應該超過屬性。此外,保持一個索引,讓你知道你在哪個數字屬性。
var j = 0;
for (var prop in objects[0]) {
然後你應該對所有對象進行循環。所以想法是,首先你要選擇「名稱」,然後遍歷所有對象,爲每個對象添加「名稱」字段到二維數組。
for (var i in objects) {
outPutArray[i][j] = objects[i][prop];
}
j++;
}
我認爲你看到的主要問題是因爲你沒有使用數字指數。 (var j in objects[i]
:這將j
定義爲一個屬性,如「name」,而不是數字索引,就像您期待的那樣)。
這正是我的問題,我沒有考慮使用單獨的計數器並反轉for循環。工作得很好,謝謝。 – 2013-03-07 06:00:37
請注意,假設object [1]具有與object [0]相同的屬性。如果每個對象都不同,那麼我們手上就會有更多的麻煩。 ;-) – 2013-03-07 06:17:00