Javascript 如何从react中的堆叠阵列中筛选阵列
我只想过滤fields元素来删除它。我已经设法删除了所有的数据,但我希望该选项也只删除字段的一个值。我设法用这段代码过滤数据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,
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现在一切正常