此问题已删除
答案 0 :(得分:2)
您正在使用include,它将在完整字符串中搜索smith。
endsWith
let arr = ['Charlotte Jones', 'Rebecca Smith', 'Harry Smith', 'John Smithy', 'Smith Jones'];
let op = arr.filter(e=> e.endsWith('Smith'))
console.log(op);
let arr = ['Charlotte Jones', 'Rebecca Smith', 'Harry Smith', 'John Smithy', 'Smith Jones'];
let op = arr.filter(e=> /\ssmith$/ig.test(e))
console.log(op);
答案 1 :(得分:0)
您是否特别看到测试组中的哪些测试失败?
您的返回所有包含字符串“ Smith”的数组成员的方法将返回一个数组,其中包含“ Smith”的项目在任何地方都将返回,并且将返回确切的字符串。
在对小组进行的第4次测试中,您将取回两个数组项并记录它们(即第二项将返回为“ Harry Smith”。
在上一次测试中,您还将取回两个项目,并且第一个项目将以“ John Smith”的形式返回。
您需要将过滤器的测试更改为仅针对姓氏进行测试(提示:也许拆分每个字符串并针对姓氏进行测试?-我让您确定如何进行此操作)。
我认为您编写的最后一个测试总是会失败。我怀疑这是要返回“约翰·史密斯”,您应该确保“史密斯”未通过测试。如果是这样,您将希望进一步过滤以确保姓氏等于“ Smith”,而不要包含它。
祝你好运!