gpt4 book ai didi

javascript - 使用 .filter 从带有 react/javascript 的对象数组中删除一个项目

转载 作者:行者123 更新时间:2023-11-30 11:03:04 25 4
gpt4 key购买 nike

我正在使用 javascript 的 .filter 函数通过它在 TypeMp3List 中的 ID 从这个对象数组中删除一个元素。格式是这样的:

enter image description here

在删除例如带有 ID:33390 的 MP3 时,我希望在执行过滤器后得到的格式是这样的:

enter image description here

这是我到目前为止构建的代码:

  showDeleteConfirmation(value, id, index, thisHandler) {
confirm({
title: 'Voulez vous supprimer cette audio ?',
content: '',
okText: 'Oui, je confirme',
okType: 'danger',
cancelText: 'Non',
onOk() {
deleteMp3Request(id);
var { extraitMP3 } = thisHandler.state;

var array = [];
for (var key in extraitMP3) {
array.push(extraitMP3[key]);
}
console.log('array',array)

const result = array.map(d => ({
...d,
TypeMp3List:
Object.fromEntries(
Object.entries(d.TypeMp3List).filter(index => index !== id)
)
}))
console.log('result',result)


thisHandler.setState({result: result})
NotificationManager.success("le fichier audio est supprimé avec succès !", "");
},
onCancel() {
},
});
}

问题是在映射和过滤 console.log(result) 后给我的结果与 console.log(array) 相同。看起来映射和过滤有问题,不知道到底是什么。任何帮助将不胜感激。

最佳答案

因为您使用 Object.entries - 这会返回一个二维数组(例如,一个包含数组的数组),并且在您的 filter 中,您正在检查是否每个数组等于一个数字。它不是。你想访问这个数组的第一个元素——所以要么进行一点解构:

Object.entries(d.TypeMp3List).filter(([index]) => index !== id)

或更详细的数组表示法:

Object.entries(d.TypeMp3List).filter(index => index[0] !== id)

关于javascript - 使用 .filter 从带有 react/javascript 的对象数组中删除一个项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56808193/

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