Я пробовал несколько других сообщений на форуме, которые, похоже, затрагивают мой вопрос, но никто из них не работает для меня. Я передаю значения с помощью кнопки на странице html в массив. Если первое значение массива существует в массиве, я хочу обновить остальные 4 значения в массиве. Если он не существует, я хочу, чтобы он создал новую строку данных. Я могу создать новые строки, но проверка значения в массиве не будет работать. Я пытался использовать angularJS и datatables для достижения этого, но отказался от этого подхода после прочтения некоторых сообщений, что они не работают вместе. Еще одна вещь, если я получу код для выполнения предупреждения "здесь", он выдает его 5 раз. Он должен просто предупредить один раз, поэтому я предполагаю, что если он обновляет таблицу, он будет делать это 5 раз, и это не имеет смысла. Заранее спасибо!
var arrayTable = [{busId: "", xCord: "", yCord: "", eventType: "", timeStamp: ""}];
$(document).ready(function() {
$('#example').dataTable();
} );
function fnUpdateRow(t, r, e, w, q) {
arrayTable = [t, r, e, w, q];
var addToArray = true;
for(var i = 0; i < arrayTable.length; i++) {
if(arrayTable[i].busId == t) {
addToArray=false;
arrayTable[i] = ({busId:t, xCord:r, yCord:e, timeStamp:w, eventType:q});
alert("here");
}
}
if(addToArray) {
$('#example').dataTable().fnAddData(arrayTable);
alert("here2");
}
}
Вы переименовываете arrayTable
в начале функции, что неправильно. Выйдите из цикла, когда найдете совпадение. И вы обновляете dataTable, но вы не добавляете в arrayTable
когда не найдете соответствия.
function fnUpdateRow(t, r, e, w, q) {
var addToArray = true;
for(var i = 0; i < arrayTable.length; i++) {
if(arrayTable[i].busId == t) {
addToArray=false;
arrayTable[i] = ({busId:t, xCord:r, yCord:e, timeStamp:w, eventType:q});
alert("here");
break;
}
}
if(addToArray) {
var newRow = {busId:t, xCord:r, yCord:e, timeStamp:w, eventType:q};
arrayTable.push(newRow);
$('#example').dataTable().fnAddData(newRow);
alert("here2");
}
}
arrayTable
в первой строке вашей функции. Возьми это.
busId
?