繁体   English   中英

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

[英]How to use a key array to remove specific items from a main array?

首先,感谢所有阅读此问题的人。 我在编写可以采用键数组并使用索引从主数组中删除类似项目的函数时遇到了麻烦。

我的主要阵列

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" ,以保持mainArray的完整性。

 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 = [ {fruit:"apple",color:"red"}, {fruit:"orange",color:"orange"}, {fruit:"banana",color:"yellow"}, {fruit:"apple",color:"red"}, {fruit:"banana",color:"yellow"}, {fruit:"mango",color:"greenishyellowishred"} ]; var keyArray = [{fruit:"apple",color:"red"}, {fruit:"banana",color:"yellow"}]; var tempArray = []; for(let j = 0; j < keyArray.length; j++) { for(let i = 0; i < mainArray.length; i++) { if(mainArray[i].fruit === keyArray[j].fruit) { tempArray.push(mainArray[i]); } } } mainArray = mainArray.filter( function( el ) { return !tempArray.includes( el ); }); console.log(mainArray); 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM