У меня есть общедоступная база данных, которую я хочу переформатировать, используя jQuery, JavaScript (и позже HTML и CSS). Я пытаюсь создать новые группы в таблице, используя предоставленную информацию. В этом конкретном примере я хочу найти каждый экземпляр месяца августа в таблице.Поиск строк по массиву ничего не возвращает
Я пробовал два метода для поиска содержимого, и оба возвращают пустой массив ('[]'). Это запутанно, потому что я могу регистрировать содержимое в консоли, но оно не будет добавлено в новый массив.
//DETECT ROWS, COLUMNS
var tableArray = [];
$("table#tableTest tr").each(function() {
var arrayOfThisRow = [];
var tableData = $(this).find('td');
if (tableData.length > 0) {
tableData.each(function() { arrayOfThisRow.push($(this).text()); });
tableArray.push(arrayOfThisRow);
}
});
//SAMPLE LOGS
console.log("R1, C5: " + tableArray[4][3]);
console.log("Total row hits: " + tableArray.length);
//CHECK FOR MONTH (AUGUST)
//Using for
function month() {
//indices represents matches within var text and will be different for each row.
var indices = [];
//This executes for every row, 0 column.
for (var i = 0; i < tableArray.length; i++) {
//text represents the text contents of current position.
var text = tableArray[i][0];
//h represents each letter of text.
for(var h = 0; h < text.length; h++) {
if (text[h] === "A") {
// If we find it, add characters up to
// the length of month to the array
for(var j = h; j < (month.length + h); j++) {
indices.push(text[j]);
};
};
};
//Log every month (works)
//console.log(tableArray[i][0]);
};
return indices;
};
month("August");
//Alternative method
var indices = [];
var element = "August";
var idx = tableArray.indexOf(element);
while (idx != -1) {
indices.push(idx);
idx = tableArray.indexOf(element, idx + 1);
}
console.log(indices);
Почему вы пропускание аргумента 'месяца()'? Он не принимает никаких параметров. – Barmar