Angular 基于where like条件按属性筛选对象数组

Angular 基于where like条件按属性筛选对象数组,angular,lodash,Angular,Lodash,我需要过滤特定属性与用户类型匹配的对象数组 鉴于此 peopleList = [ {name: "john bee", age:23}, {name: "john woo", age:43}, {name: "jim foo", age:101}, {name: "bob wow", age:67}, {name: "last john", age:43}, ] 一旦用户输入了第一个字符,我就要过滤数组,不是基于精确匹配,而是基于“where like” 我检查了这个问题

我需要过滤特定属性与用户类型匹配的对象数组

鉴于此

peopleList = [ 
  {name: "john bee", age:23},
  {name: "john woo", age:43},
  {name: "jim foo", age:101},
  {name: "bob wow", age:67},
  {name: "last john", age:43},
]
一旦用户输入了第一个字符,我就要过滤数组,不是基于精确匹配,而是基于“where like”

我检查了这个问题:

但它只返回一个精确匹配,或者什么也不返回

我可以使用什么样的lodash函数来返回一个对象数组,其中name属性与用户输入的查询字符串匹配,这样,如果用户键入“Jo”,就会返回:

[ 
  {name: "john bee", age:23},
  {name: "john woo", age:43},
  {name: "last john", age:43},
]
如果有关系的话,我会使用Angular。

试试这个

const peopleList = [ 
  {name: "john bee", age:23},
  {name: "john woo", age:43},
  {name: "jim foo", age:101},
  {name: "bob wow", age:67},
  {name: "last john", age:43},
]
const search = "jo"

cosnt subList = peopleList.filter((person)=>person.name.indexOf(search) > -1)
试试这个

const peopleList = [ 
  {name: "john bee", age:23},
  {name: "john woo", age:43},
  {name: "jim foo", age:101},
  {name: "bob wow", age:67},
  {name: "last john", age:43},
]
const search = "jo"

cosnt subList = peopleList.filter((person)=>person.name.indexOf(search) > -1)

在es6语法中,它看起来像

const filteredArray = peopleList.filter( people => people.name.includes(someText) );

在es6语法中,它看起来像

const filteredArray = peopleList.filter( people => people.name.includes(someText) );

以下是没有lodash和纯javascript的工作片段:

var peopleList=[
{姓名:“约翰·比”,年龄:23},
{姓名:“吴宇森”,年龄:43},
{姓名:“jim foo”,年龄:101},
{姓名:“bob wow”,年龄:67},
{姓名:“最后的约翰”,年龄:43},
];
var result=peopleList.filter(person=>person.name.includes(“jo”);

控制台日志(结果)以下是没有lodash和纯javascript的工作代码段:

var peopleList=[
{姓名:“约翰·比”,年龄:23},
{姓名:“吴宇森”,年龄:43},
{姓名:“jim foo”,年龄:101},
{姓名:“bob wow”,年龄:67},
{姓名:“最后的约翰”,年龄:43},
];
var result=peopleList.filter(person=>person.name.includes(“jo”);

控制台日志(结果)我可以在.ts文件中使用它吗?我正在进行的大型项目是基于typescript,而不是我的决定。如果不能使用上面的选项是什么?是的,为什么不可以,您可以毫无疑问地使用它@Nikocraft我可以添加一个建议,让它更像是一个实际的
where like
条件,在
person.name.toLowerCase()
as
includes()
上进行筛选,尽管在这种特定情况下,既然所有的名字都是小写的,那就没关系了。很好的建议,jun,考虑到上面vivek的代码,我应该把这个建议放在哪里?我可以在.ts文件中使用这个吗?我正在进行的大型项目是基于typescript,而不是我的决定。如果不能使用上面的选项是什么?是的,为什么不可以,您可以毫无疑问地使用它@Nikocraft我可以添加一个建议,让它更像是一个实际的
where like
条件,在
person.name.toLowerCase()
as
includes()
上进行筛选,尽管在这种特定情况下,既然所有的名字都是小写的,那就没关系了。很好的建议,jun,考虑到上面vivek的代码,我该把这个建议放在哪里呢?