正在数组中查找要删除的特定对象

Finding specific objects in array to remove

本文关键字:对象 删除 数组 查找      更新时间:2023-09-26

我有一个数据数组,它存储一个带有函数和其他类似信息的对象。我将这些对象推送到函数中,以便执行draw函数。

但我不知道如何在数组中找到一个特定的对象来删除它,从而停止绘制它

例如,我有一个这样的数组结构:

var data  = {
            'fnc':function(){ 
                      updatePosition(spriteID); 
                      drawSprite(spriteID); 
             },
             'something':'here'
            };
var drawOrder= [];
drawOrder.push(data);

这个数组中有很多函数,它们是根据我想要绘制的内容动态推送的。

在这种情况下,找到其中一个对象的索引并将其从数组中删除的最佳方法是什么?

indexOf()返回要搜索的元素数组中的索引,或-1。所以你可以做:

var index = drawOrder.indexOf("aKey");
if (index != -1)
    drawOrder.splice(index, 1);

拼接:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/splice
索引:
http://www.w3schools.com/jsref/jsref_indexof_array.asp

我不是100%这会回答你的问题,因为至少我不清楚。

如果你想删除整个元素,但又担心在实际拼接数组之前建立正确的索引,那么你应该使用Array.indexOF

请参阅下面的代码:

var data  = {
            'fnc':function(){ 
                      updatePosition(spriteID); 
                      drawSprite(spriteID); 
             },
             'type':'aabb'
            };
var drawOrder= [];
drawOrder.push(data);
console.log(drawOrder);
drawOrder.splice(drawOrder.indexOf(data), 1);
console.log(drawOrder);

如文件所示:

indexOf()方法返回在数组中可以找到给定元素的第一个索引,如果不存在,则返回-1。