js如何利用正则和findIndex 来匹配出array中所有符合条件的index?

有以下 array

[
  {name: '小红', age: 15},
  {name: '小明', age: 14},
  {name: '小强', age: 13},
  {name: '老张', age: 22},
  {name: '王小兰', age: 16},
  {name: '张小', age: 18},
]

能否利用正则和findIndex类似的方法,来匹配出所有符合 name中带有 ‘小’的index?

比如这次返回的是 [0,1,2,4,5]

阅读 4.1k
2 个回答
let resIndexs = [];
let searchStr = '小';
let data = [
  {name: '小红', age: 15},
  {name: '小明', age: 14},
  {name: '小强', age: 13},
  {name: '老张', age: 22},
  {name: '王小兰', age: 16},
  {name: '张小', age: 18},
];

data.forEach((d, i) => {
  if (d.name.indexOf(searchStr) !== -1) {
    resIndexs.push(i);
  }
});

console.log(resIndexs); // [0, 1, 2, 4, 5]

其实 用es6 的includes 也一样的
var res = [];
var arr = [
{name: '小红', age: 15},
{name: '小明', age: 14},
{name: '小强', age: 13},
{name: '老张', age: 22},
{name: '王小兰', age: 16},
{name: '张小', age: 18},
];

arr.forEach(item => {
if (item.name.includes()) {

res.push(item);

}
})
console.log(res)

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题