在mouseclick JS上迭代数组

时间:2016-09-13 13:03:09

标签: javascript arrays for-loop onclick iterator

我有这个代码。我单击此按钮,它调用此函数并通过promises返回我的数组。 现在使用该数组我想通过单击likedislike按钮迭代,然后移动到数组中的下一个项目,或者更确切地说下一次显示。我试过下面的

 for (var i = 0; i < users_array.length; i++) {
   console.log(users_array[i].name);
   document.getElementById('displayUsers').innerHTML = users_array[i].name;
 }

但所有这一切都将innerHTML替换为数组中的姓氏。代码需要改变以允许我控制数组而不是for循环。其余代码如下:

document.getElementById('revealUser').onclick = displayDaUsers


function displayDaUsers(users_array){
  pullAllUsersFromDB().then(function(users_array){
       console.log(users_array);
  })
}

function pullAllUsersFromDB(){
   return new Promise(function(resolve, reject){
      rootRef.child('users').on('value', function(snapshot) {
      var users_object = snapshot.val();
      var users_array = Object.keys(users_object).map(function(key) {
        return users_object[key];
      });
      resolve(users_array)
    });
   })
}

1 个答案:

答案 0 :(得分:0)

在此代码中,您可以在每次迭代时替换innerHTML值。为了获得一组值,你可以这样做:

var usersList = [];
users_array.forEach(function(user){
   usersList.push(user.name)
}
document.getElementById('displayUsers').innerHTML = usersList.join(' ');