gpt4 book ai didi

javascript - 包含()不为子字符串返回true

转载 作者:行者123 更新时间:2023-12-03 21:42:47 30 4
gpt4 key购买 nike

如果关键字是子字符串,我无法弄清楚为什么这个函数不返回结果。

const string = 'cake';
const substring = 'cak';
console.log(string.includes(substring));
// returns true

但是当我在这里尝试做类似的事情时,我没有得到我期望的结果。

function filterByKeyword(array, keyword) {
return array.filter((x) =>
x.keywords
.map(function(x) {
return x.toLowerCase();
})
.includes(keyword.toLowerCase())
);
};

const array = [{
"id": 1014,
"keywords": [
"Sesame Street",
"Cake",
"Party",
"Birthday"
]
},
{
"id": 1015,
"keywords": [
"Sesame Street",
"Party",
"Birthday"
]
}
];

console.log(filterByKeyword(array, 'cak'))
// returns []

console.log(filterByKeyword(array, 'cake'))
// returns an array with the correct object

我究竟做错了什么?

最佳答案

您可以使用 Array#some 检查数组中的任何字符串是否包含关键字。

function filterByKeyword(array, keyword) {
return array.filter((x) =>
x.keywords.some(w=>w.toLowerCase().includes(keyword.toLowerCase()))
);
};

const array = [
{
"id":1014,
"keywords":[
"Sesame Street",
"Cake",
"Party",
"Birthday"
]
},
{
"id":1015,
"keywords":[
"Sesame Street",
"Party",
"Birthday"
]
}];

console.log(filterByKeyword(array, 'cak'))

关于javascript - 包含()不为子字符串返回true,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66536188/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com