我是一个 JavaScript 初学者,不知道如何准确地搜索我想要完成的...
我有以下数组,我以表格格式逐行显示在页面上。
[
0: {
cuip: ".A0100",
quantity: 38,
...
}
1: {
cuip: ".A0102",
quantity: 1,
...
}
...
]
当用户选择列表中的任何项目时,我会在下方的切换选中的行旁边标记复选框
toggleRow(cuip) {
const newSelected = Object.assign({}, this.state.selected);
newSelected[cuip] = !this.state.selected[cuip];
this.setState({
selected: newSelected,
selectAll: 2
});
}
我最终处于选中状态的是
{.A0100: true, ...}
太棒了。因此,如果用户选择 1、多行或所有行,我会将这些行 cuips 在状态中保存为 true。麻烦的是,我需要在行中保存某些值,如 ste、clt、数量等。即:
[
{
...
"cuip": ".A0102",
"clt": "asvd",
"ste": "v31r",
"quantity": 3,
...
}, {
...
"clt": "vr13",
"ste": "vr31",
"quantity": 6,
...
},
]
最佳答案
您可以存储(然后删除)对整行的引用而不是 bool 值以访问每个字段。
// Sample storage and a sample row
const selected = {};
const row = { cuip: '.A0100', quantity: 38 };
// Add a row
selected[row.cuip] = row;
// Check if a row is selected
const isRowSelected = selected.hasOwnProperty(row.cuip);
// Remove a row
delete selected[row.cuip];
您可以按照您已经演示的方式将其绑定(bind)到您的状态管理。
请参阅关于 the delete
operator 的 MDN 文章和 Object.hasOwnProperty()
了解更多信息。
关于javascript - 将整行保存到状态数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56173162/