如何解决与另一个数组比较从数组中删除对象
我有一个数组blackList,其中存储了列入黑名单的商户名称,现在我有一个包含许多业务的对象的结果数组,我想将不在blackListed数组中的商户名称存储在该数组中以及最高效的方式来做到这一点?
真的需要嵌套循环吗?
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' } ]
解决方法
最简单的方法是使用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; }
,
尝试
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});
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。