简体   繁体   English

与另一个数组比较,从数组中删除对象

[英]Remove objects from array comparing with another array

I have an array blackList where I store blacklisted business names, now I have a results array of objects with many business, I want to store in an array the business names which are not included in the blackListed array, what is the easier and most performant way to do this?我有一个数组 blackList,我在其中存储列入黑名单的企业名称,现在我有一个包含许多企业的对象的结果数组,我想将未包含在 blackListed 数组中的企业名称存储在一个数组中,什么是最简单和最高效的如何做到这一点?

Is a nested loop really needed for this?真的需要嵌套循环吗?

blackList = [ "Dominos Pizza", "Domino's Pizza", "McDonald's", "McDonalds",  "Telepizza", "Subway", "Burger King", "KFC", "Pans&Co", "Pans&Company" ,
        "Rodilla", "Rodilla Campamento", "Granier", "Llaollao" , "Taco Bell", "Wendy's", "Dunkin' Donuts", "Pizza Hut", "Papa John's Pizza", "Little Caesars",
        "Panera Bread", "Chipotle", "Papa Murphy's", "Hungry Howie", "Chipotle Mexican Grill", "Starbucks"],
        list = [ { name:'business 1' }, { name:'business 2' }, { name:'business 3' } ]

The easiest way to do this is to use filter and destructuring:最简单的方法是使用filter和解构:

 const blackList = ["Dominos Pizza", "Domino's Pizza", "McDonald's", "McDonalds", "Telepizza", "Subway", "Burger King", "KFC", "Pans&Co", "Pans&Company", "Rodilla", "Rodilla Campamento", "Granier", "Llaollao", "Taco Bell", "Wendy's", "Dunkin' Donuts", "Pizza Hut", "Papa John's Pizza", "Little Caesars", "Panera Bread", "Chipotle", "Papa Murphy's", "Hungry Howie", "Chipotle Mexican Grill", "Starbucks" ]; const list = [{ name: 'business 1' }, { name: 'business 2' }, { name: 'business 3' }, { name: "Granier" }]; const notOnBlacklist = list.filter(({ name }) => !blackList.includes(name)); console.log(notOnBlacklist);
 .as-console-wrapper { max-height: 100% !important; top: auto; }

Try尝试

 let blackList = {"Dominos Pizza":1, "Domino's Pizza":1, "McDonald's":1, "McDonalds":1 ,"Telepizza":1, "Subway":1, "Burger King":1, "KFC":1, "Pans&Co":1 ,"Pans&Company":1, "Rodilla":1, "Rodilla Campamento":1, "Granier":1 ,"Llaollao":1, "Taco Bell":1, "Wendy's":1, "Dunkin' Donuts":1, "Pizza Hut":1 ,"Papa John's Pizza":1, "Little Caesars":1, "Panera Bread":1, "Chipotle":1 ,"Papa Murphy's":1, "Hungry Howie":1, "Chipotle Mexican Grill":1 ,"Starbucks":1 }; let list = []; addBusiness("'business 1'"); addBusiness("Domino's Pizza"); addBusiness("'business 2'"); addBusiness("Hungry Howie"); addBusiness("'business 3'"); console.log(list); function addBusiness (name) { if (blackList.hasOwnProperty(name)) return; list.push({'name':name}); }

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

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