Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/461.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何从react中的堆叠阵列中筛选阵列_Javascript_Reactjs - Fatal编程技术网

Javascript 如何从react中的堆叠阵列中筛选阵列

Javascript 如何从react中的堆叠阵列中筛选阵列,javascript,reactjs,Javascript,Reactjs,我只想过滤fields元素来删除它。我已经设法删除了所有的数据,但我希望该选项也只删除字段的一个值。我设法用这段代码过滤数据 this.setState( state => ({ data: state.data.filter((row, j) => j !== i), }) ); 但我只想从data.fields中删除一项。我已经试过用这个了 this.setState(state => ({ data: state.data.filter((row,

我只想过滤fields元素来删除它。我已经设法删除了所有的数据,但我希望该选项也只删除字段的一个值。我设法用这段代码过滤数据

this.setState(
  state => ({
    data: state.data.filter((row, j) => j !== i),
  })
);
但我只想从data.fields中删除一项。我已经试过用这个了

this.setState(state => ({
  data: state.data.filter((row, j) => row.fields[x].bitname !== k),
}));
但我还没走运

以下是数据结构:

data: [
  {
    registerName: "MANID",
    address: 0,
    mode: "R",
    size: 8,
    por: 0,
    doc: "document level",
    fields: [
      { bitname: 'INT', bitmask: '16', bitvalue: '*', maskname: '*', doc: 'doc level' },
      { bitname: 'IDLE_MODE', bitmask: '0', bitvalue: '*', maskname: '*', doc: 'doc level' },
    ]
  }
]

如果您的对象是
row.fields[x]
并且您想从该对象中删除
bitname
属性,正确的方法是:

delete row.fields[x].bitname
以下是从对象中删除属性的示例代码段:

const字段={
姓名:“肖恩”,
年龄:25岁,
位名称:'some value'
}
删除字段名

console.log(field)
您应该避免从现有对象中删除该字段,因为这会直接改变状态。试试这样的

this.setState(
      state => (
        {
          data: state.data.map((row, j) => {
              if (j === i) {
                return {
                  ...row,
                  fields: row.fields.filter(field => field.bitname !== k)
                }                
              }
              return row;
            }),
        })); 

非常感谢@Evan Morrison现在一切正常