繁体   English   中英

我可以使用 .includes() 来确定数组是否包含基于字符串数组而不是单个字符串的某个元素?

[英]Can I use .includes() to determines whether an array includes a certain element based on an array of strings instead of a single string?

现在,如果我使用这段代码,我会得到所有区域属性为“德玛西亚”的元素

let filtered = this.cards.filter((card) => {
    return card.region.includes("Demacia");
})

现在我希望能够获取属性区域为“Noxus”或“Demacia”的所有元素,但是,这似乎不起作用,因为它返回一个空数组

let regions = ["Demacia", "Noxus"];

let filtered = this.cards.filter((card) => {
    return card.region.includes(regions);
})

我什至可以这样做还是需要查看其他数组函数?

不要尝试将多个选项传递给includes ,而是查看regions内部以查看它是否包含当前卡片的区域

let regions = ["Demacia", "Noxus"];

let filtered = this.cards.filter((card) => {
    return regions.includes(card.region);
})

只是添加我的答案,因为Array.prototype.includes()在 IE 中不受支持,所以如果你想支持旧浏览器,你可以这样做

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/includes#Browser_compatibility

 let regions = ["Demacia", "Noxus"]; let filtered = this.cards.filter((card) => { return regions.indexOf(card.region) > -1; })

暂无
暂无

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

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