Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如果对象也出现在JSON对象中,则从数组中删除该对象_Javascript_Arrays_Json_Object - Fatal编程技术网

Javascript 如果对象也出现在JSON对象中,则从数组中删除该对象

Javascript 如果对象也出现在JSON对象中,则从数组中删除该对象,javascript,arrays,json,object,Javascript,Arrays,Json,Object,我正在使用此脚本从数组中删除JSON对象,该数组和另一个JSON对象都显示在数组中: var stageChildren=stage.sprite; 对于var i=0;i

我正在使用此脚本从数组中删除JSON对象,该数组和另一个JSON对象都显示在数组中:

var stageChildren=stage.sprite; 对于var i=0;i 在object1中,可能存在同样的JSON对象,它也出现在object2中。如果是这种情况,对象将从object1中删除

虽然这个脚本可以工作,但我认为它可能会对性能产生巨大影响。为什么?stageChildren中大约有50个独立的对象,主菜单中有10个。脚本循环遍历stageChildren中的第一个对象,通过再次执行for循环检查该对象是否也在主菜单中,然后移动到下一个49个对象


有没有更优化的方法来实现这一点?

。请务必阅读标记的描述。可能有,但您不应该费心查找它,除非您希望每秒运行代码100次或更多次。您可以这样尝试:如果main menu.includestagechildren[i]{//perform operation}@Quentin是垃圾。除单行键外,键必须是字符串,值必须是有效的JSON数据类型字符串、数字、对象、数组、布尔值或null。顶部的独立示例完全是关于JavaScript,而不是JSON。mainMenu是JSON对象,因此includes将不起作用。@Nanoo哦,如果是这种情况,那么您现在可以检查我编辑的答案:谢谢,但是我如何从stageChildren数组中选择特定对象?在这种情况下,我想删除it@Nanoo现在检查我的更新答案,如果它有效。。如果没有,您可以根据需要进行少量修改,这样就可以了。includes返回true或false。所以上面的脚本没有任何逻辑意义。
var index = 0;
var stageChildren = stage.sprites;
for (var x in mainMenu) {
    if (stageChildren.includes(mainMenu[x])) {
        const result = stageChildren.includes(mainMenu[x])
        var index = stageChildren.indexOf(result);
        stageChildren.splice(index, 1);
    }
}