当我加载重新加载页面时,如何删除数组中的所有对象?

时间:2017-05-23 10:58:09

标签: javascript arrays object typescript ionic2

我正在使用ionic2(Angular2& typescript)。目前我正在研究一种匹配算法,在该算法中找到匹配,它会将结果推送到一个也在对象内的数组中。但是,如果我回到上一页并尝试进行另一场比赛。它将显示上一场比赛的结果。我希望能够在进入匹配部分之前清除阵列/对象内的所有结果。到目前为止我尝试使用ionwillEnter,它只是给我一个空白页面。我尝试将它放在构造函数中,它不起作用。下面是代码

填充对象

constructor(public navCtrl: NavController, public navParams: NavParams,public testService: TestService,public cameraService: CameraService,public toastCtrl: ToastController,public auth : AuthProvider,af : AngularFire) {

    this.objUser.length = 0; //trying to empty out all the elements/objects inside the array 

    var ref = firebase.database().ref('/user/'+ firebase.auth().currentUser.uid+'/profile/');
    ref.on('value',
      ((data)=>{

        var users = data.val();
        var keys = Object.keys(users);
        console.log(keys);

        for(var y =0; y<keys.length; y++){
          var x = keys[y];

          this.objUser[y] = {userName:'', userAllergies:[], resultWarning:[], resultUnsafe:[]};  //dynamically create objects based on the y value
          console.log(users[x].allergies);

          this.objUser[y].userName = users[x].name;
          this.objUser[y].userAllergies.push(users[x].allergies);
          console.log('userAllergies',this.objUser[y].userAllergies);
          console.log(this.objUser[y].userAllergies.length);

        }

        console.log(this.objUser);
        console.log(this.objUser.length);
      }),
      this.errData);
  }

因此,无论如何我可以删除数组中的所有元素并重新初始化我加载页面的所有内容吗?。非常感谢帮助!

1 个答案:

答案 0 :(得分:0)

&#39;上&#39;为firebase节点中的每个更改触发方法(即编辑/添加/删除)。因此,请尝试清除&#39; on&#39;内的数组元素。方法,但不在它之外。