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