javascript - 如何循环遍历我从 snapshot.val() 收到的数据并将其推送到基于键的数组

标签 javascript angular firebase ionic-framework ionic3

我想根据用户键遍历从 snapshot.val() 收到的数据,并将它们推送到一个数组中。我尝试在 for..in 循环的帮助下这样做,

firebase.database().ref('\interests').child("I would like to dine with").on('value', (snapshot) => {
  var data = snapshot.val();
  if(snapshot.exists()){
    for(let key in data){
      console.log("data[key]",data[key]);
      this.intVal.push(data[key]);
      console.log("intVal",this.intVal);
    }
  }
})

但是我得到了这样的东西,

enter image description here

如果您注意到,我的第一个数组在用户键下包含 1 个对象,而我的第二个数组在其用户键下包含 3 个对象。如何将每个值推送到单独的数组中?

任何帮助将不胜感激!谢谢

最佳答案

有一个DataSnapshot.forEach() method正是为了这个目的:

firebase.database().ref('\interests').child("I would like to dine with").on('value', (snapshot) => {
  snapshot.forEach((child) => {
    console.log(child.key, child.val()); 
    this.intVal.push(child.val());
    console.log("intVal",this.intVal);
  });
  }
})

关于javascript - 如何循环遍历我从 snapshot.val() 收到的数据并将其推送到基于键的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46143891/

相关文章:

javascript - 使替换函数不区分大小写

javascript - 如何在 Angular 2 循环中每行显示两个表列(Angular2 相当于 PHP 的 array_chunk)

angular - 如何在 ui-view 状态组件中访问 @ui-router/Angular url 和 params?

javascript - 带有 firebase 通知的 Flutter web - subscribeToTopic

java - 为什么这些 html 列表合并到这个页面中?

javascript - 如何从ajax php获取值(无法获取)

javascript - 有什么方法可以获取 Firebase Auth 用户 UID?

node.js - strip 连接创建客户的正确电话号码格式

javascript - 无法读取未定义的属性 'isArray'

java - 使用 Spring 和 Angular 2 进行 CSRF