javascript - 如何将表格行数据添加到数组
问题描述
目标:获取所有表格行(单元格)数据并添加到数组中
问题:如果多于 1 行,它会覆盖先前添加的数组条目,而不是将其添加到数组的末尾。这会导致数组将最后一个表格行数据集复制/三重复制/等(与表格中存在的行一样多)
设置:我有一个动态 html 表,用户可以通过输入用户名和年龄来添加行,然后单击“添加”按钮。Load 按钮必须获取表体元素并填充对象,在 for 循环之后必须获取 innerText,更新对象并将对象 push() 到数组中。但这是结果: 数组的console.log 截图
let roleArr = [];
loadBtn.addEventListener("click", () => {
roleTableData();
});
function roleTableData() {
let test = tblRows.children;
const collectRoles = {
uName: "",
uAge: "",
};
for (let i = 0; i < test.length; i++) {
collectRoles.uName= test[i].children[0].innerText;
collectRoles.uAge= test[i].children[1].innerText;
roleArr.push(collectRoles);
}
}
解决方案
由于您collectRoles
对每个 irraration 使用相同的对象,因此您正在重新定义所有对象,因为它们是同一对象的引用。
您可以研究“JavaScript 中的参考与价值”以更好地理解为什么会这样。
以下是我将如何编写您的 roleTableData 函数:
function roleTableData() {
roleArr = [...tblRows.children].map(tr => {
return {
uName: tr.children[0].innerText,
uAge: tr.children[1].innerText
};
});
}
推荐阅读
- javascript - 根据它的旋转将 div 从卡扇向外移动?
- chatbase - Chatbase 返回 200,但概览为空
- javascript - 按钮点击,一切都消失了
- qt - Qt:用另一个模型扩展 QFileSystemModel
- java - 放心:发布请求返回错误“JSON 输入文本不应为空或空”。
- html - 圆形进度条中的圆形图像 [CANVAS]
- ios - Firebase 不会报告 iOS 中的所有崩溃,而 Xcode 10 会报告所有崩溃,我们能否以某种方式跟踪 firebase 上的所有这些崩溃?
- android - Android RTL:阿拉伯语和希伯来语语言支持之间的差异
- python - 将 3D 熊猫数据帧转换为 2d
- r - 与另一个表中的数据进行部分求和和计算