我正在从 SharePoint 文档库中保存的 Excel 文件中提取数据。我得到了行,但我对数据结构感到困惑。我对typscript/javascript还很陌生。
我正在取回行:
private _getRows(documentLibraryID: string, documentID: string, worksheet: string, table: string): Promise<[MicrosoftGraph.WorkbookTableRow]> {
return new Promise<any>((resolve, reject) => {
this.props.context.msGraphClientFactory
.getClient()
.then((client: MSGraphClient): void => {
client
.api(`/sites/${URL}/drives/${documentLibraryID}/items/${documentID}/workbook/worksheets('${worksheet}')/Tables('${table}')/rows`)
.get((error, response: any, rawResponse?: any) => {
if (response) {
let rows:[MicrosoftGraph.WorkbookTableRow] = response.value;
resolve(rows);
}
else {
reject(error);
}
});
});
});
}
我得到什么:
我尝试枚举数组:
for (let row of rows) {
console.log("row: ", row);
for (let value of row.values) {
console.log("value: ", value);
for (let newValue of value.values) {
console.log("newValue: ", newValue);
}
}
}
但我没有到达 newValue
对象:
我对这个结构有什么不明白的地方?它看起来像 3 个嵌套数组。
最佳答案
问题是,当您达到这一点时:for (let value of row.values)
,value
确实是一个数组。因此不需要执行 value.values
。
这段代码应该可以正常工作:
for (let row of rows) {
console.log("row: ", row);
for (let valueArr of row.values) {
console.log("value: ", valueArr);
for (let newValue of valueArr) {
console.log("newValue: ", newValue);
}
}
}
希望对你有帮助!
关于javascript - 对 3 个嵌套数组感到困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52823932/