JS如何返回姓氏相同的所有人

时间:2018-12-22 18:18:34

标签: javascript arrays names arr

此问题已删除

2 个答案:

答案 0 :(得分:2)

您正在使用include,它将在完整字符串中搜索smith。

  1. 使用endsWith

let arr = ['Charlotte Jones', 'Rebecca Smith', 'Harry Smith', 'John Smithy', 'Smith Jones'];

    let op = arr.filter(e=> e.endsWith('Smith'))

    console.log(op);

  1. 使用正则表达式

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”,而不要包含它。

祝你好运!