从数组中删除重复对象-JavaScript?

时间:2019-08-21 18:14:32

标签: javascript css arrays object lodash

我知道这是一个非常简单的问题,但我不知道为什么不和我一起工作!

我要声明一个数组,从服务器获取数据后,将它们推入这些空数组中,当我记录它们时,我可以看到这样的数据

data logger

我正在使用Loadash获取唯一的obj,为什么不为我工作?

这是我的功能

_uniqUser= () => {
    let currentUser = firebase.auth().currentUser.uid;
    let ref = firebase.database().ref(`users/${currentUser}`);
    let providersKeys = [];

    ref.once("value").then(snapshot => {
      snapshot.forEach(childsnap => {
        providersKeys.push(childsnap.key);
      });
      let providers = [];
      providersKeys.forEach(key => {
        firebase
          .database()
          .ref("providers")
          .child(key)
          .once("value")
          .then(providersShot => {
            let username = providersShot.val().username;
            providers.push({ username: username, key: key });
          });
      });
      let uniq = _.uniqBy(providers,"key")
      console.log(uniq); // I got Empty array
      console.log(typeof providers); // I got Object!!
      this.setState({ providers:uniq, noChat: false });
      // this.setState({ providers, noChat: false },()=>console.log(this.state.providers)) // I see the above image!
    });
  };

0 个答案:

没有答案