如何遍历从 snapshot.val() 收到的数据并根据键将其推送到数组

How to loop through the data I receive from snapshot.val() and push it to an array based on keys(如何遍历从 snapshot.val() 收到的数据并根据键将其推送到数组)
本文介绍了如何遍历从 snapshot.val() 收到的数据并根据键将其推送到数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I want to loop through the data I receive from snapshot.val() based on user keys and push them into an array. I tried doing it with the help of for..in loop like this,

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);
    }
  }
})

但我得到了这样的东西,

But I'm getting something like this,

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

If you notice, my first array contains 1 object under a user key and my second array contains 3 objects under their user keys. How can I push every single value in a separate array?

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

Any help would be much appreciated! Thanks

推荐答案

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

There is a DataSnapshot.forEach() method precisely for this purpose:

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);
  });
  }
})

这篇关于如何遍历从 snapshot.val() 收到的数据并根据键将其推送到数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

Update another component when Formik form changes(当Formik表单更改时更新另一个组件)
Formik validation isSubmitting / isValidating not getting set to true(Formik验证正在提交/isValiating未设置为True)
React Validation Max Range Using Formik(使用Formik的Reaction验证最大范围)
Validation using Yup to check string or number length(使用YUP检查字符串或数字长度的验证)
Updating initialValues prop on Formik Form does not update input value(更新Formik表单上的初始值属性不会更新输入值)
password validation with yup and formik(使用YUP和Formick进行密码验证)