#jquery #loops #variables #datatables
#jquery #циклы #переменные #таблицы данных
Вопрос:
'createdCell': function (cell, cellData, rowData, rowIndex, colIndex) {
if(Array.isArray(cellData)){
console.log(colIndex);
var myfirstArray = colIndex;
}
}
Мой вывод console.log (colIndex):
3
4
Что я хочу сделать, это сохранить первое значение (в данном случае 3
в переменную myfirstArray
. Есть ли способ остановить скрипт для сохранения других данных в переменную после сохранения первого? Потому что прямо сейчас myfirstArray
установлено значение 3
, но после этого оно перезаписывается 4
?
Комментарии:
1. Предположительно
createdCell
функция вызывается несколько раз. Таким образом, если вы хотите иметь дело с одним или несколькими значениями, предоставленными ее аргументам, вам нужно будет сделать это в рамках этой функции.2. @RoryMcCrossan Может быть, есть способ проверить, была ли функция вызвана в первый раз?
3. Есть, но
myfirstArray
переменная находится только в области действия этой функции, поэтому вопрос становится спорным — если только вы не сделаете переменную глобальной, но это не очень хорошая практика, и ее следует избегать.4. @RoryMcCrossan Ну, я понимаю. Но факт в том, что у меня есть определенное количество ячеек. это исправление. и наименьшее число данных ячейки, которое определяется как массив, всегда
3
. Не имеет значения, сколько раз вызывается функция. Это всегда3
5. Это означает, что в каждой функции мне нужно установить моей переменной
myfirstArray
значение3
. Вы понимаете, что я имею в виду? Возможно, сбивает с толку
Ответ №1:
// Both variables sohuld be global
let functionAlreadyVisited = false;
let myfirstArray;
// ...
'createdCell': function (cell, cellData, rowData, rowIndex, colIndex) {
if(!functionAlreadyVisited amp;amp; Array.isArray(cellData)){
functionAlreadyVisited = true;
console.log(colIndex);
myfirstArray = colIndex;
}
if(Array.isArray(cellData)){
$(cell).attr('data-original-title', 'This is my first Array:' myfirstArray);
}
return myfirstArray;
}
Комментарии:
1. К сожалению, это не работает. В каждой функции мне нужно иметь доступ к myfirstArray =3
2. @marila Тогда не могли бы вы более четко объяснить, что вы хотите сделать, и показать, как вы вызываете
createdCell
? Вы можете обновить свой вопрос.3. Да, фактически это почти то, что мне нужно. Представьте, что функция запущена, и myfirstArray имеет значение 3, затем функция запускается снова, но мне нужно получить доступ к «3». Возможно ли тогда присвоить myfirstArray значение «global» или вернуть его, чтобы я мог получить к нему доступ при следующем запуске функции?
4. Спасибо! Я проверил ваш код. Я забыл вам сказать, что в последней строке внутри функции у меня есть этот код:
$(cell).attr('data-original-title', 'this is my first Array:' myfirstArray);
5. Но если я использую это сейчас, то я получаю сообщение об ошибке:
unreachable code after return statement