当使用 Array.filter() 方法时,可能会出现字符串中引号的问题导致没有返回匹配项。在字符串中使用错误的引号类型或缺少引号都可能导致这个问题。
解决方法是使用正确的引号类型,并确保字符串中的引号成对出现。以下是一个示例代码,使用双引号作为字符串的引号类型,并使用转义符号来处理字符串中包含的其他双引号:
const fruits = [
{ name: "apple", color: "red" },
{ name: "banana", color: "yellow" },
{ name: "grape", color: "purple" }
];
const filterColor = "red";
const filteredFruits = fruits.filter(fruit =>
fruit.color === filterColor
);
console.log(filteredFruits);
const filterString = 'I want to filter "red" fruits';
const filteredFruits2 = fruits.filter(fruit =>
filterString.includes(`"${fruit.color}"`)
);
console.log(filteredFruits2);
在上面的代码示例中,我们使用两种方法来过滤水果数组。首先,我们使用一个变量来存储要过滤的颜色值,并使用双引号将其包装。然后,我们使用 Array.filter() 方法,使用颜色值作为筛选条件。这会返回颜色为红色的水果对象。
接下来,我们在字符串中使用双引号,并使用反引号来包装该字符串,使我们可以在其中使用其他双引号。然后,我们使用 String.includes() 方法和模板字面量来过滤包含指定颜色名称的字符串。
通过正确使用引号类型和转义字符来处理字符串中的其他引号,我们可以确保 Array.filter() 方法可以正确返回我们想要的匹配项。