Выполните итерацию по json и получите значение каждого x-го объекта - PullRequest
2 голосов
/ 08 апреля 2019

Как я могу выполнить итерацию через объект JSON, взять каждое n-е значение и сгенерировать элемент #id grid #id для.

прямой пример: я хочу получить каждое значение третьего элемента в массиве и заполнить их нижедруг с другом в делениях.

valueRanges: Array(1)
0:
majorDimension: "ROWS"
range: "'ma1'!A1:J38"
values: Array(38)
0: (10) ["maandag 1 april 2019", "", "", "", "", "", "", "", "", "week IV"]
1: Array(10)
0: "kafee"
1: "naam"
2: "functie"
3: "van"
4: "tot"
5: "van"
6: "tot"
7: "Subtotaal"
8: "totaal"
9: "Info"
length: 10
__proto__: Array(0)
2: Array(10)
0: ""
1: "Ine"
2: ""
3: "9:30"
4: ""
5: ""
6: "18:00"
7: "8,5"
8: "8"
9: "Reservaties/opmerkingen"
length: 10
__proto__: Array(0)
3: (9) ["", "Michiel", "", "9:30", "", "", "17:30", "8", "7,5"]

Я получаю данные с помощью

document.getElementById("test").innerHTML = response.result.valueRanges[0].values[0][0];
var request = gapi.client.sheets.spreadsheets.values.batchGet(params);
      request.then(function(response) {
        // TODO: Change code below to process the `response` object:
        console.log(response.result);
        document.getElementById("currentday").innerHTML = response.result.valueRanges[0].values[0][0];
        document.getElementById("StartHourOne").innerHTML = response.result.valueRanges[0].values[2][3];
        document.getElementById("EndHourOne").innerHTML = response.result.valueRanges[0].values[2][6];

        document.getElementById("BarTeamNightNameOne").innerHTML = response.result.valueRanges[0].values[11][1];

Я мог бы сделать это для каждой ячейки на листе, но у меня много ячеек вэтот лист.

Я надеюсь, что смогу использовать возвращаемую структуру в JSON.

Мне удалось вручную добавить ячейки.для каждого объекта, но я думаю, что мне нужен цикл для этого.

Поэтому попытался использовать цикл for, но это не сработало.

valueRanges: Array(1)
0:
majorDimension: "ROWS"
range: "'ma1'!A1:J38"
values: Array(38)
0: (10) ["maandag 1 april 2019", "", "", "", "", "", "", "", "", "week IV"]
1: Array(10)
0: "kafee"
1: "naam"
2: "functie"
3: "van"
4: "tot"
5: "van"
6: "tot"
7: "Subtotaal"
8: "totaal"
9: "Info"
length: 10
__proto__: Array(0)
2: (10) ["", "Ine", "", "9:30", "", "", "18:00", "8,5", "8", "Reservaties/opmerkingen"]

Массив значений показывает 0–38 других массивов, которые идут от 0 до 10. Теперь, например, каждый массив 0–10 имеет те же данные в своем родительском массиве (0–38).Как я могу повторить, что я заполняю новые элементы div каждым 1-м значением, например, 0-14 родительских массивов.

Я пытался следовать, основываясь на действии @Kiryhas.

Но это дает мне следующее.

Следующий код:

const object1 = { response.result.valueRanges[0].values[2][1] , 1: response.result.valueRanges[0].values[2][3], 2: response.result.valueRanges[0].values[2][6], 3: response.result.valueRanges[0].values[2][7]};
        console.log(Object.entries(object1));

Дает мне этот результат:

(4) [Array(2), Array(2), Array(2), Array(2)]
0: Array(2)
0: "0"
1: "Ine"
length: 2
__proto__: Array(0)
1: (2) ["1", "9:30"]
2: Array(2)
0: "2"
1: "18:00"
length: 2
__proto__: Array(0)
3: (2) ["3", "8,5"]
length: 4
__proto__: Array(0)

Как я просто хочу элементы массива 1, 3, 6, 7 из следующего массиваза массив

2: Array(10) (or any other array)
0: ""
1: "Ine"
2: ""
3: "9:30"
4: ""
5: ""
6: "18:00"
7: "8,5"
8: "8"
9: "Reservaties/opmerkingen"

1 Ответ

1 голос
/ 08 апреля 2019

В зависимости от того, насколько вы заботитесь о ключах в этом объекте, вы можете перебирать значения или пары ключ-значение, используя Object.keys(yourObject) или Object.entries(yourObject):

const object1 = { foo: 'bar', baz: 42 };
console.log(Object.entries(object1)[1]);
// expected output: Array ["baz", 42]

const object2 = { 0: 'a', 1: 'b', 2: 'c' };
console.log(Object.entries(object2)[2]);
// expected output: Array ["2", "c"]

const result = Object.entries(object2).sort((a, b) => a - b);
console.log(Object.entries(result)[1]);

ожидаемый результат: Array ["1", Array ["1", "b"]]

Для справки попробуйте ниже ссылки

Global_Objects / Объект / значение

Global_Objects / Объект / записи

Это позволит вам пройти через них с циклом, нацеленным на каждое N-е значение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...