2016-09-13 6 views
0

У меня этот код. Я нажимаю на эту кнопку, и она вызывает эту функцию и возвращает мой массив через обещания. Теперь с этим массивом я хочу выполнить итерацию, нажав кнопку like или dislike, а затем перейдя к следующему элементу массива или, скорее, отображая в следующий раз. Я попытался нижеИтерация через массив на mouseclick JS

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

ответ

0

В этом коде вы с каждой итерации вы заменить значение innerHTML. для получения массива значений вы можете сделать что-то вроде этого:

var usersList = []; 
users_array.forEach(function(user){ 
    usersList.push(user.name) 
} 
document.getElementById('displayUsers').innerHTML = usersList.join(' '); 
Смежные вопросы