#javascript #arrays
#javascript #массивы
Вопрос:
Я пытался сделать это с:
arr[i][j] = 'whatever';
но я получаю какую-то ошибку «не удается преобразовать в объект …»
Ответ №1:
Я собираюсь предположить, что вы не инициализировали a[i]
, когда пытаетесь обработать это как массив. Если вы не инициализировали a[i]
, чтобы быть массивом, когда вы говорите a[i][j]
, то это будет undefined (или что-то еще, что не является массивом или объектом), и это не знает, что [j]
означает, следовательно, ваша ошибка «не удается преобразовать в объект». Вам нужно что-то более похожее на это:
var a = [ ];
for(var i = 0; i < 10; i) {
a[i] = [ ];
for(var j = 0; j < 10; j) {
a[i][j] = 42; // a[i] is now an array so this works.
}
}
Ответ №2:
Установить как
a[3]["fieldName"]="xxxx";
Комментарии:
1. Это неправильно. Доступ к массивам осуществляется по позиции индекса. То же самое относится и к многомерным массивам. [indexNumber][Номер индекса].
2. вы могли бы объяснить ответ. Это поможет другим, если ответ правильный
3. вы помещаете массив как Arr.push({ TimeSheetID: 0, ProjectID: 1, ProjectName: «Test», TaskName: «My Task», TaskType: TaskType, Status: 0, isNew: true }); и, следовательно, ваш объект array содержит 10 записей, если вы хотите изменить значение свойства ProjectName в 3-м индексе, тогда вы должны записать как: Arr[3][«ProjectName»]=»xxxxxxx»;