为了账号安全,请及时绑定邮箱和手机立即绑定

将整行保存到数组中

将整行保存到数组中

心有法竹 2021-05-30 14:47:26
我是一名 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,        ...    },]
查看完整描述

3 回答

?
BIG阳

TA贡献1859条经验 获得超6个赞

您可以找到您选择的特定行并将其保存在选定的数组中


例如:


//you can have a state of selected rows

state = {

  selectedRows: []

}

toggleRow(cuip) {

    const newSelected = Object.assign({}, this.state.selected);

    newSelected[cuip] = !this.state.selected[cuip];

..

    const {selectedRows, /* this is where your data is stored -> */ rows} = this.state;

    const findSelected = rows.find(row => row.cuip === cuip);

    const selected = [...selectedRows, findSelected]

    this.setState({

      selected: newSelected,

      selectAll: 2,

      selectedRows: selected  

    });

  }

对不起,如果我理解错了,那是你要找的吗?


查看完整回答
反对 回复 2021-06-03
?
达令说

TA贡献1821条经验 获得超6个赞

您可以存储(然后删除)对整行的引用而不是布尔值来访问每个字段。


// 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];

您可以按照已经演示的相同方式将其绑定到您的状态管理。

查看该MDN文章的delete运营商,并Object.hasOwnProperty()为进一步的信息。


查看完整回答
反对 回复 2021-06-03
  • 3 回答
  • 0 关注
  • 176 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信