gpt4 book ai didi

javascript - 将 .filter 与 uniqueId 结合使用

转载 作者:行者123 更新时间:2023-12-03 04:02:33 26 4
gpt4 key购买 nike

我正在尝试使用过滤函数来循环并删除我的数组之一。我知道我可以使用索引,但是,我想明确地使用 uniqueId。过滤器使用错误吗?

[{
company: Company A,
title: Title A,
uniqueId: uniqueId
},
{
company: Company B,
title: Title B,
uniqueId: uniqueId
}]

路径:函数

this.setState({
careerHistoryPositions: this.state.careerHistoryPositions.filter(uniqueId)
});

最佳答案

正确的语法是:

careerHistoryPositions.filter(item => item.uniqueId === uniqueId)

但是,您可能不想使用过滤后的列表执行 setState。最好使用您要过滤的 uniqueId 执行 setState。然后在render()函数中进行过滤。这样您就可以撤消或更改过滤器。

更新

完整的解决方案可能如下所示:

class List extends React.Component {
constructor(...args) {
super(...args);
this.state = {
filterId: null
};
}

handleFilterChange(event) {
this.setState({
filterId: event.target.value,
});
}

render() {
const { careerHistoryPositions } = this.props;
const { filterId } = this.state;

const items = filterId
? careerHistoryPositions.filter(item => item.uniqueId === filterId)
: careerHistoryPositions;

return (
<div>
<input
type="text"
value={filterId}
onChange={event => this.handleFilterChange(event)}
/>
<ul>
{items.map(item => (
<li>{item.title} ({item.company})</li>
))}
</ul>
</div>
)
}
}

关于javascript - 将 .filter 与 uniqueId 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44664191/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com