Firebase在我的node.js应用中的行为不正常

时间:2016-04-13 05:30:48

标签: javascript node.js firebase

Firebase在我的node.js应用中表现得非常时髦,我不知道为什么。

例如,如果我的变量看起来像这样:

var points = new List<GLatLng> { new GLatLng(59.6919, 17.8582),new GLatLng(59.3030, 18.0395),new GLatLng(58.9789, 17.5341) };
var polyline = new GPolyline(points,"#ff0000",1); 

我可以记录它并让它正确地吐出所有东西,但如果我尝试通过内部数组获取它,就像这样。

var AllItems= {"itemList":[{"id":1,"name":....}

返回var itemList = AllItems[itemList]

如果我尝试在这样的循环中一次吐出每一个:

undefined

它吐出这样的东西:

for(i in AllItems){
console.log('i: ',i)
}

一直到i: 0 i: 1 i: 2 i: 3 并且我只有13个项目,假设它在那里记录了索引号,但它不是,它应该只吐出那个i: 7581上面的itemList将是它的价值。

我的firebase模块是

[{"id":1,"name":....

1 个答案:

答案 0 :(得分:1)

我想你的问题是你不明白如何正确访问你的AllItem对象。

访问一个itemList

在您的问题中,您尝试以AllItems[itemList]方式访问itemList。在那里,itemList被视为变量,即undefinedAllItems[undefined]未定义。

以下是访问它的两种方法:

var itemList = allItems['itemList'];
var itemList = allItems.itemList;

在项目列表上循环

我不知道你是如何到达i: 7581的,但我就这样做了:

for(var key in allItems) {
  console.log(allItems[key]); 
}

这会记录allItems中的每个itemList。

我用我刚才解释的所有内容制作了一个小片段。

&#13;
&#13;
var allItems = {
  "itemList": [{
    "id": 1,
    "name": "item1"
  }, {
    "id": 2,
    "name": "item2"
  }, {
    "id": 2,
    "name": "item2"
  }]
};

// Log itemList (2 ways)
console.log(allItems['itemList']);
console.log(allItems.itemList);

var itemList = allItems.itemList;

// Log every item in itemList
itemList.forEach(function (item) {
  console.log(item);
});

// Log every itemList in allItems
for(var key in allItems) {
  console.log(allItems[key]); 
}
&#13;
&#13;
&#13;