javascript - 遍历 json 并获取每个第 x 个对象值

标签 javascript json html google-sheets-api

我如何遍历 JSON 对象并获取每个第 n 个值并为其生成一个 css 网格 #id 元素。

直接示例:我想要数组中第三个元素的每个值,并在 div 中将它们填充在彼此下方。

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 循环。

因此为此尝试了一个 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 元素,例如 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"

最佳答案

根据您对该对象中的键的关心程度,您可以使用 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]);

expected output: Array ["1", Array ["1", "b"]]

引用尝试下面的链接

Global_Objects/Object/values

Global_Objects/Object/entries

这将允许您通过一个针对每个第 N 个值的循环来遍历它们。

关于javascript - 遍历 json 并获取每个第 x 个对象值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55568460/

相关文章:

javascript - 为什么默认的 Yeoman 应用程序模块不需要一个空数组来进行依赖项注入(inject)?

javascript - 为什么我的 Rails 资源管道中的 js 文件没有被编译?

jquery - 上下滚动时按钮弹跳

html - CSS Flexbox 右对齐响应式

javascript - document.width - IE 错误

javascript - 正确初始化 IndexedDB 对象存储

javascript - 两个数字不等于,但它们具有相同的类型和值

json - Kotlin 没有将 "is"作为 json key 的开始

php - 从 Ajax 格式化 jQuery 数据表的 PHP/Mysql 数据

javascript - 在字符串的每次出现处添加标签