как присваивать значения многомерным массивам в javascript?

#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»;