Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/476.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 如何使用键数组从主数组中删除特定项?_Javascript_Arrays - Fatal编程技术网

Javascript 如何使用键数组从主数组中删除特定项?

Javascript 如何使用键数组从主数组中删除特定项?,javascript,arrays,Javascript,Arrays,首先,感谢所有阅读了整个问题的人。我在编写一个函数时遇到了问题,该函数可以接受一个键数组,并使用索引从主数组中删除类似的项 我的主阵列 var mainArray = [ {fruit:"apple",color:"red"}, {fruit:"orange",color:"orange"}, {fruit:"banana",color:"yellow"}, {fruit:"apple",color:"red"}, {fruit:"banana",

首先,感谢所有阅读了整个问题的人。我在编写一个函数时遇到了问题,该函数可以接受一个键数组,并使用索引从主数组中删除类似的项

我的主阵列

var mainArray = [
    {fruit:"apple",color:"red"}, 
    {fruit:"orange",color:"orange"}, 
    {fruit:"banana",color:"yellow"}, 
    {fruit:"apple",color:"red"}, 
    {fruit:"banana",color:"yellow"},
    {fruit:"mango",color:"greenishyellowishred"}
]
项目数组将添加到此
mainArray
,我需要一次删除多个项目

我的密钥数组

var keyArray = [{fruit:"apple",color:"red"}, {fruit:"banana",color:"yellow"}]
我试图通过使用for循环在阵列中递减来删除
“apple”
“banana”
,以保持
主阵列的完整性

 for(var i = mainArray.length - 1; i > -1; i--) {
    for(var j = keyArray.length - 1; j > -1; j--) {     
      if(mainArray[i].fruit === keyArray[j].fruit) {
        mainArray.splice(i, 1)
        keyArray.splice(j, 1)
      }
    }
 }
当我试图读取
mainArray[I].fruit时,出现了我的问题,如果I=0

提前感谢您的帮助

尝试以下方法:
var mainArray=[
{水果:“苹果”,颜色:“红色”},
{水果:“橙色”,颜色:“橙色”},
{水果:“香蕉”,颜色:“黄色”},
{水果:“苹果”,颜色:“红色”},
{水果:“香蕉”,颜色:“黄色”},
{水果:“芒果”,颜色:“绿黄红”}
];
var-keyArray=[{水果:“苹果”,颜色:“红色”},{水果:“香蕉”,颜色:“黄色”}];
var tempArray=[];
for(设j=0;jconsole.log(mainArray)
上述代码中没有递归是指必须从
mainArray
中删除
keyArray
中存在的任何fruit对象?您到底有什么问题?您的代码似乎工作正常。仅供参考,如果您可以选择更改
keyArray
的结构,则只需包含
水果
名称(即
[“苹果”、“香蕉”]
)即可提高代码的效率。然后您可以只使用
keyArray.indexOf(mainArray[i].fruit)>=0
,而不需要第二个循环。您能再详细说明一下吗?你的功能正在发挥作用。