给定数组[{GUID,other properties},...],
如何通过GUID(或任何对象属性)从javascript数组中删除特定对象?
我正在尝试使用splice(),
var index = game.data.collectedItems.indexOf(entityObj.GUID);
if (index > -1) {
game.data.collectedItems.splice(index, 1);
}
Run Code Online (Sandbox Code Playgroud)
这是行不通的,因为我无法直接识别数组中的值,如下所示:
var array = [2, 5, 9];
var index = array.indexOf(5);
Run Code Online (Sandbox Code Playgroud)
我建议使用该Array.prototype.filter功能,就像这样
game.data.collectedItems = game.data.collectedItems.filter(function(currentObj){
return currentObj.GUID !== entityObj["GUID"];
});
Run Code Online (Sandbox Code Playgroud)
这将迭代 的元素game.data.collectedItems并过滤掉函数作为参数传递的项目 returns false。在您的情况下,除了匹配true的对象之外,所有对象都将返回。GUIDentityObj["GUID"]
注意:由于filter创建了一个新的数组,我们需要用新的数组对象替换旧的数组对象。filter这就是为什么我们将back的结果分配给game.data.collectedItems。
| 归档时间: |
|
| 查看次数: |
933 次 |
| 最近记录: |