gpt4 book ai didi

javascript - 如何通过对象的属性从对象数组中删除特定对象?

转载 作者:搜寻专家 更新时间:2023-11-01 04:36:34 25 4
gpt4 key购买 nike

给定数组 [{GUID, other properties}, ...],

如何通过 GUID(或任何对象属性)从 javascript 数组中删除特定对象?

我正在尝试使用 splice(),

var index = game.data.collectedItems.indexOf(entityObj.GUID);
if (index > -1) {
game.data.collectedItems.splice(index, 1);
}

这行不通,因为我无法直接识别数组中的值,例如:

var array = [2, 5, 9];
var index = array.indexOf(5);

此处显示:How do I remove a particular element from an array in JavaScript?

最佳答案

我建议使用 Array.prototype.filter函数,像这样

game.data.collectedItems = game.data.collectedItems.filter(function(currentObj){
return currentObj.GUID !== entityObj["GUID"];
});

这将遍历 game.data.collectedItems 的元素并过滤掉函数作为参数传递的项目,返回 false。在您的情况下,除 GUIDentityObj["GUID"] 匹配的对象外,所有对象都将返回 true

注意:由于filter创建了一个新的数组,我们需要用新的数组对象替换旧的数组对象。这就是我们将 filter 的结果分配回 game.data.collectedItems 的原因。

关于javascript - 如何通过对象的属性从对象数组中删除特定对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28391564/

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