Javascript 如何在加载或重新加载页面时删除数组中的所有对象?
我使用的是ionic2(Angular2&typescript)。目前我正在研究一种匹配算法,如果找到匹配项,它将把结果推送到数组中,数组也在对象中。但是,如果我返回上一页并尝试进行另一次匹配,它将显示上一次匹配的结果。因此,我希望能够在继续进行匹配部分之前清除数组/对象中的所有结果。到目前为止,我尝试使用ionwillEnter,它只给了我一个空白页。我试着把它放在构造函数中,但它不起作用。下面是代码 填充对象Javascript 如何在加载或重新加载页面时删除数组中的所有对象?,javascript,arrays,object,typescript,ionic2,Javascript,Arrays,Object,Typescript,Ionic2,我使用的是ionic2(Angular2&typescript)。目前我正在研究一种匹配算法,如果找到匹配项,它将把结果推送到数组中,数组也在对象中。但是,如果我返回上一页并尝试进行另一次匹配,它将显示上一次匹配的结果。因此,我希望能够在继续进行匹配部分之前清除数组/对象中的所有结果。到目前为止,我尝试使用ionwillEnter,它只给了我一个空白页。我试着把它放在构造函数中,但它不起作用。下面是代码 填充对象 constructor(public navCtrl: NavController
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);
}
构造函数(public-navCtrl:NavController、public-navParams:navParams、public-testService:testService、public-cameraService:cameraService、public-toastCtrl:ToastController、public-auth:AuthProvider、af:AngularFire){
this.objUser.length=0;//尝试清空数组中的所有元素/对象
var ref=firebase.database().ref('/user/'+firebase.auth().currentUser.uid+'/profile/');
参考日期('值',
((数据)=>{
var users=data.val();
var keys=Object.keys(用户);
控制台日志(键);
for(var y=0;y“on”方法会因firebase节点中的每次更改(即编辑/添加/删除)而触发。因此,请尝试清除“on”方法内部而非外部的数组元素