Typescript 按indexof筛选JavaScript对象数组

Typescript 按indexof筛选JavaScript对象数组,typescript,Typescript,所有的答案似乎都使用精确匹配,我希望使用indexOf进行部分匹配 我的数组是这样的: [{fName: 'John'}, {fName: 'Johnny'}, {fName: 'Sally'}] 我设置了一个文本字段,以便在每次键入新字符时调用函数。我想能够采取用户输入和过滤数组一旦他们开始键入,所以如果他们键入'J',它应该返回的约翰对象和约翰尼对象。如果我与“John”进行精确匹配,它将返回正确的对象,但不会返回部分匹配。这就是我到目前为止所做的: this.nameArray.filt

所有的答案似乎都使用精确匹配,我希望使用indexOf进行部分匹配

我的数组是这样的:

[{fName: 'John'}, {fName: 'Johnny'}, {fName: 'Sally'}]
我设置了一个文本字段,以便在每次键入新字符时调用函数。我想能够采取用户输入和过滤数组一旦他们开始键入,所以如果他们键入'J',它应该返回的约翰对象和约翰尼对象。如果我与“John”进行精确匹配,它将返回正确的对象,但不会返回部分匹配。这就是我到目前为止所做的:

this.nameArray.filter((name) => {
      return this.textInputValue.indexOf(name.fName) > -1;
});

只需对name.fName使用indexof,而不是textInputValue@lleon你能提供一个答案吗,我不知道如何将我拥有的更改为您建议的内容。只需交换textInputValue和name即可。fName@Andreas那么,如果我删除textInputValue,我如何将用户输入的值与name.fName进行比较?我在哪里说过应该删除textInputValue?这到底对你意味着什么?只需执行name.fName.indexOftextInputValueIt,当输入为'John'@PranavRamachandran时,它将返回John&Johnny,问题是?OP要求的就是这个行为,如果他们输入'J',它应该返回John对象和Johnny对象,这就是想法。约翰和约翰尼不相上下
this.nameArray.filter((name) => {
      return userInput===name.fName.substring(0, userInput.length);
});