正在数组中查找要删除的特定对象
Finding specific objects in array to remove
我有一个数据数组,它存储一个带有函数和其他类似信息的对象。我将这些对象推送到函数中,以便执行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。
相关文章:
- 在不知道深度或父属性的情况下从对象中删除属性
- 解析JSON并从中删除对象会出错
- 如何从对象中删除属性
- 在特定条件下从存储在localStorage中的阵列中删除对象
- Es6:能够在设置/更新/删除对象属性时调用自定义方法
- AngularJS:删除重复的对象并按值对数组进行重新排序
- 正在从对象中删除值
- 正在从列表中删除对象
- 删除对象时终止setInterval
- jQuery-检测选择对象是否添加或删除了选项
- 如何在不删除类似侦听器的情况下从父对象中删除jQuery事件侦听器
- 为什么没有从数组中存在的对象中删除属性
- 从Three.js场景中删除许多对象的速度较慢
- 删除两个独立对象中的属性,而不使用多余的删除语句
- JS:将 EventListener 添加到动态创建的 DOM 对象中,这些对象删除 parentNode
- Java 脚本 json 解析对象:删除操作后不删除“,”
- JavaScript对象删除特定键值中的引号
- tinyMCE对象删除事件触发器
- javascript地图对象删除不工作
- Javascript对象删除元素