【发布时间】:2026-01-21 06:30:01
【问题描述】:
我正在尝试将数组推入另一个数组。数据正在填充父数组,但在填充记录后,它会覆盖父数组中的所有记录。在这里,我已经编写了我的代码。请指导我在哪里犯了错误?
这里我试图将 CSV 文件头值作为键和 CSV 文件记录作为值的模型。
let csvArr: any[] = [];
for (let i = 1; i < csvRecordsArray.length; i++) {
let curruntRecord = (<string>csvRecordsArray[i]).split(',');
if (curruntRecord.length == headerLength) {
let headerRecord: {};
headerRecord = this.headersRowData
for(let j = 0; j < this.headersRowData.length; j++){
headerRecord[this.headersRowData[j]] = curruntRecord[j].trim()
}
csvArr.push(csvRecord)
}
}
HeaderRowData 将从 CSV 文件中读取标题,该文件是 any[] 的数组类型。
csvRecord 正在根据文件和循环获取正确的数据,但是当推入 csvArr 时,csvArr 中的所有现有记录都会覆盖那里。 那么这里如何解决这个覆盖问题呢?
【问题讨论】:
-
csvRecordsArray 中有哪些数据?
-
csvArr.push(csvRecord) 永远不应覆盖。在这段代码中看不到问题。这可能在函数内部吗?还有 let csvArr: any[] = [];?因为这只会在您每次调用函数时重置数组..?
-
@Blunderchips csvRecordsArray 是 CSV 文件的所有记录列表,没有第一行作为标题。
-
@MikeOne 是的,它在函数内部。但是该函数只调用一次。整个过程只在那里调用一次。唯一的循环是在我们调用该函数时处理那里的记录。
-
您能否使用来自 csvRecordsArray、headerLength、headersRowData、csvRecord 的数据示例值/数据来更新您的问题。我什至看不到 csvRecord 是在哪里定义的。
标签: javascript arrays multidimensional-array