gpt4 book ai didi

javascript - 如何简化元素搜索方法?

转载 作者:行者123 更新时间:2023-12-01 01:51:56 25 4
gpt4 key购买 nike

我做了一个方法 checkAddedTrack() ,它检查搜索的元素是否添加到用户播放列表中,但我认为这个方法有点愚蠢,你能给我提个建议吗,我怎样才能用另一种方式使它更简单,或者更聪明?

提前谢谢您!

function SearchListItem(props) {
const {id, playlist, isSelected, clickHandler, index, title_short, duration, onClickAdd} = props;


const checkAddedTrack = () => {
let isTrackAdded = false;
playlist.map(track => {
if (track.id === id) {
isTrackAdded = true;
}
});
return isTrackAdded;
};

return (
<div>
<li className={isSelected ? `active-song` : ``} onClick={() => {
clickHandler(index)
}}>
{index + 1 + ' . '}{title_short} {formatTime(duration)}
</li>
<button disabled={checkAddedTrack()} onClick={onClickAdd}>
<i className={!checkAddedTrack() ? `fa fa-plus` : `fa fa-minus`}> </i>
</button>
</div>
);
}

最佳答案

是的,这比您需要的要多一点,您可以使用 Array#some 方法来实现:

const checkAddedTrack = () => playlist.some(track => track.id === id)

该方法将返回一个 bool 值,具体取决于该数组中的一项或多项是否满足条件。

考虑这个播放列表的示例,您可以非常轻松地使用该函数:

const playlist = [{id:1}, {id:2}, {id:3}, {id:4}, {id:5}, {id:6}, {id:7}, ];
let id = 5;

const checkAddedTrack = () => playlist.some(track => track.id === id)

console.log(checkAddedTrack())

id = 10;

console.log(checkAddedTrack())

关于javascript - 如何简化元素搜索方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51411032/

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