#javascript #for-loop #foreach #for-of-loop
#javascript #for-loop #foreach #для-из-цикла
Вопрос:
Я борюсь со следующим:
У меня есть 7 столбцов с номерами от 0 до 6. Каждый столбец содержит несколько DIV. Я хочу найти последний div в каждом столбце. Я могу получить их с помощью:
var lastDiv = col[col.length-1];
console.log(lastDiv);
У меня есть следующее для каждого столбца, закодированное 7 раз (где cols [1] становится cols [2] и т. Д.):
var col = cols[1]; //setting the second column
var lastDiv = col[col.length-1];
console.log(lastDiv);
Итак, для безопасного пространства для кодирования я подумал, что это также можно сделать с помощью цикла. Как новичок / начинающий программист, у меня не так много опыта работы с ними, поэтому я начал просто с цикла «for»:
function myFunction(){
var col = [ 0, 1, 2, 3, 4, 5, 6 ];
for (var i = 0; i <= 6; i ) {
console.log(col[i]);
}
}
Это дает мне все номера столбцов. Следующий шаг с использованием nrs для проверки каждого столбца на наличие lastDiv:
function myFunction(){
var col = [ 0, 1, 2, 3, 4, 5, 6 ];
for (var i = 0; i <= 6; i ) {
var lastDiv = col[col.length-1];
console.log(lastDiv);
}
}
Похоже, это не работает, я не получаю каждый lastDiv для каждого столбца. Итак, я подумал, что, возможно, мне нужен «forEach» вместо этого? Итак, я попробовал:
var col = [ 0, 1, 2, 3, 4, 5, 6 ];
col.forEach(myFunction);
function myFunction(){
var lastDiv = col[col.length-1];
console.log(lastDiv);
}
Это тоже не сработало. Я также нашел несколько примеров «для», но они были для меня еще более сложными (хотя я читал, что их полезно использовать).
Очевидно, я делаю здесь что-то не так, но, похоже, я не могу понять это. Итак, я подумал о том, чтобы спросить здесь. Что я упускаю / делаю неправильно?
Спасибо
Комментарии:
1. Вы устанавливаете
lastDiv
последний элемент, вcol
котором вы объявили как массив чисел от 0 до 6, поэтому он всегда будет возвращать 6. вам нужно получить доступ к вашему массиву элементов div, а неcol
.2. Думаете, вы можете опубликовать это как встраивание?
3. @pilchard Baiscly я хочу, чтобы он начинался с столбца 0 и запускал «var lastDiv = col [col.length-1];», А затем переходил к столбцу 1 и запускал его, а затем к столбцу 2 и т. Д. И т. Д. До 6. Я тоже начал неправильно в массиве??
Ответ №1:
Попробуйте этот метод
$('col selector').each(function(e){
let lastdiv =$(this).children().last('div');
});
Комментарии:
1. op не указал, что они ищут решение jQuery, а скорее помогают с базовым циклом.
Ответ №2:
Понял (мне не нужно было использовать массив):
function myFunction(){
for (var i = 0; i <= 6; i) {
var col = cols[i];
var lastDiv = col[col.length-1];
//some other stuff
}
Это сработало для меня!