将整行保存到数组中

我是一名 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,

        ...

    },

]


心有法竹
浏览 177回答 3
3回答

BIG阳

您可以找到您选择的特定行并将其保存在选定的数组中例如://you can have a state of selected rowsstate = {  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      });  }对不起,如果我理解错了,那是你要找的吗?

达令说

您可以存储(然后删除)对整行的引用而不是布尔值来访问每个字段。// Sample storage and a sample rowconst selected = {};const row = { cuip: '.A0100', quantity: 38 };// Add a rowselected[row.cuip] = row;// Check if a row is selectedconst isRowSelected = selected.hasOwnProperty(row.cuip);// Remove a rowdelete selected[row.cuip];您可以按照已经演示的相同方式将其绑定到您的状态管理。查看该MDN文章的delete运营商,并Object.hasOwnProperty()为进一步的信息。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript