Я пытаюсь создать новый массив из json объектов, взятых из api googlespreadsheet.
Я получаю следующее:
valueRanges:
0:
values:
0:
0: Tuesday May 12
1:
0: ''
1: ''
2: ''
3: 'Person 1'
4: 'Person 2'
2:
0: '00:00'
1: 'till'
2: '01:00'
3: 'name 1'
4: 'name 2'
3:
0: '01:00'
1: 'till'
2: '02:00'
3: 'another name 1'
4: 'another name 2'
4:
...
1:
values:
0:
.....
Что бы я хотел новый массив должен выглядеть так:
[{
date: 'Tuesday May 12,
header: true,
subitems: [{
0: {
time: '',
person1: 'Person 1',
person2: 'Person 2'
}
1: {
time: '00:00 till 01:00',
person1: 'Name 1',
person2: 'Name 2'
}
2: {
time: '01:00 till 02:00',
person1: 'Another Name 1',
person2: 'Another Name 2'
}
}]
}]
Я знаю, как получить время от 3 столбцов до 1 строки, так что проблема не в этом.
Код, который я сейчас использую для создать массив следующим образом:
fetch(url)
.then((response) => response.json())
.then((response) => {
const data = [];
for (let i = 0; i < response.valueRanges.length; i++) {
const data = [{
'date': response.valueRanges[i].values[0][0],
'header':true,
}];
for (let j = 0; j < response.valueRanges[i].values.length; j++) {
if (j == 0) {
continue;
}
const time = [response.valueRanges[i].values[j][0],response.valueRanges[i].values[j][1],response.valueRanges[i].values[j][2]];
const array2 = [
{
'subitems': {
'time': time.join(' '),
'person1': response.valueRanges[i].values[j][3],
'person2':response.valueRanges[i].values[j][4]
}
}
]
}
data.push(array2);
}
Но я не получаю правильный массив.
Отредактировано
Вот что я получаю:
[ { date: 'Tuesday May 12', header: true } ]
[ { subitems: { time: '', person1: 'Persoon 1', person2: 'Persoon 2' } } ]
[ { subitems:
{ time: '00:00 tot 01:00',
person1: 'Name 1',
person2: 'Name 2' } } ]
[ { subitems:
{ time: '01:00 tot 02:00',
person1: 'Another name 1',
person2: 'Another name 2' } } ]
Что я пропустил?
Дополнительный вопрос
А что, если я хочу вместо этого изменить новый массив на следующее:
[
{
date: 'Tuesday May 12,
header: true
}
{
time: '',
person1: 'Person 1',
person2: 'Person 2'
}
{
time: '00:00 till 01:00',
person1: 'Name 1',
person2: 'Name 2'
}
{
time: '01:00 till 02:00',
person1: 'Another Name 1',
person2: 'Another Name 2'
}
]
Итак, в основном удаляем подэлементы и просто повторяем весь блок в зависимости от дат.