按每个单词的第一个字母过滤包含元素的数组
Filter an array with elements by first letter of each word
我有这个代码:
return !this.form.get('skills').value.map(item => item.id).includes(skill.id) &&
(value === null || skill.name.toLowerCase().startsWith(value.toLowerCase()));
我有这个清单:
Artist
Armagedon
Commandos Artist
Refactor
Gol Jumir Afart
Armony
如果我写:A
:我得到列表:
Artist
Armagedon
Armony
但我想获取和项目:Commandos Artist
和 Gol Jumir Afart
。
你能帮帮我吗?
您可以使用正则表达式来过滤您的值。我们将查找以您的来信开头的每个单词。
const myFilter = 'A';
const regex = new RegExp(`(^${myFilter}.*)|( ${myFilter}.*)`, 'i');
const filtered = [
'Artist',
'Armagedon',
'Commandos Artist',
'Commandos Artist Paul',
'Refactor',
'Gol Jumir Afart',
'armony',
].filter(x => regex.test(x));
console.log(filtered);
我有这个代码:
return !this.form.get('skills').value.map(item => item.id).includes(skill.id) &&
(value === null || skill.name.toLowerCase().startsWith(value.toLowerCase()));
我有这个清单:
Artist
Armagedon
Commandos Artist
Refactor
Gol Jumir Afart
Armony
如果我写:A
:我得到列表:
Artist
Armagedon
Armony
但我想获取和项目:Commandos Artist
和 Gol Jumir Afart
。
你能帮帮我吗?
您可以使用正则表达式来过滤您的值。我们将查找以您的来信开头的每个单词。
const myFilter = 'A';
const regex = new RegExp(`(^${myFilter}.*)|( ${myFilter}.*)`, 'i');
const filtered = [
'Artist',
'Armagedon',
'Commandos Artist',
'Commandos Artist Paul',
'Refactor',
'Gol Jumir Afart',
'armony',
].filter(x => regex.test(x));
console.log(filtered);