从数组匹配值并从函数返回另一个数组

湿婆

我被赋予创建基于对象的用户数组的任务。然后创建一个函数,该函数接受一个参数并返回与第一个arr中比较的值匹配的另一个数组

var users = [
  {
    firstname : "jetlag",
    lastname: "son"
  },
  {
    firstname : "becky",
    lastname: "love"
  },
  { 
    firstname : "just",
    lastname: "me"
  }
];

function matchName(name) {
  for (var i = 0; i < users.length; i++) {
      if(users[i].firstname == name) {
          return users[i];
      } else {
          console.log('user does not exist')
      }
  }
}

console.log(matchName("jetlag"));

我能够匹配specfic用户名,但如果我只是进入j到了matchName("j"),我想返回两个对象。

任何帮助都会很棒。http://jsfiddle.net/dv9aq0m7/

谢谢。

ryanyuyu

您当前的代码返回第一个完全匹配项。这段代码:

  if(users[i].firstname == name) {
      return users[i];
  }

检查两个字符串是否相等,然后return语句将仅返回该匹配值。该函数返回任何值后也将停止。

因此,您需要进行两个小更改。首先,您需要跟踪所有符合条件的用户,并且应该使用不同的逻辑来检查该字符串是否以另一个string开头

修改后的代码可能如下所示:

function matchName(name) {
  var validUsers = [];                        //the array of users that pass the logic
  for (var i = 0; i < users.length; i++) {  
      if(users[i].firstname.lastIndexOf(name) === 0) { //this is "starts with" logic
           validUsers.push(users[i]);         //add the element if it's valid
      } 
  }
  //I moved the logic for no matching users the outside the loop
  if (validUsers.length === 0) 
      console.log('No matching users found')
  return validUsers;
}

注意:根据您要打印的文本,我通过检查validUsers数组中元素的数量,将打印逻辑移到了循环外找不到任何用户的位置仅当没有匹配的用户时才打印一次。

这是一把拨弄你的小提琴

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用 JS 的数组映射 - 将值与另一个数组进行比较并从第二个数组返回值

来自分类Dev

翻转键并从另一个数组构造值

来自分类Dev

查找索引与另一个数组值匹配的数组值

来自分类Dev

将数组中的值与另一个数组中的值进行匹配

来自分类Dev

使用另一个数组中的值返回一个数组中的数组

来自分类Dev

将函数的静态数组返回到main()函数中的另一个数组

来自分类Dev

PHP:如何将一个数组中的键与另一个数组中的值进行比较,并返回匹配项?

来自分类Dev

jQuery将一个数组的键与另一个数组的值进行比较并返回匹配项

来自分类Dev

将一个数组与另一个数组进行比较,然后返回匹配结果的索引

来自分类Dev

检查一个数组的值是否与另一个数组的键匹配-PHP

来自分类Dev

获取索引数组,在另一个数组中找到匹配的索引并替换值

来自分类Dev

根据匹配值从另一个数组获取新数组

来自分类Dev

按另一个数组的匹配值的顺序对numpy数组进行排序

来自分类Dev

将数组中的值与另一个数组中的值进行匹配,并将新数组中的对应值作为循环返回

来自分类Dev

删除另一个数组的数组值

来自分类Dev

从另一个数组返回PHP中的关联数组的函数

来自分类Dev

函数根据另一个数组的值从一个数组中提取值

来自分类Dev

在另一个数组中查找一个数组的匹配索引

来自分类Dev

将一个数组的顺序与另一个数组匹配

来自分类Dev

从另一个数组获取匹配索引

来自分类Dev

我想比较两个数组,并从1到另一个匹配最高的出现率?

来自分类Dev

将键从一个数组匹配到另一个数组,并使用它们的值创建一个新数组?

来自分类Dev

JavaScript定义数组大小并从另一个数组克隆

来自分类Dev

Numpy用另一个数组的值总结一个数组

来自分类Dev

从另一个数组的值派生一个数组

来自分类Dev

根据另一个数组的值对一个数组进行排序?

来自分类Dev

将一个数组与另一个数组值进行比较

来自分类Dev

通过另一个数组中的值过滤一个数组?

来自分类Dev

比较一个数组值和另一个数组

Related 相关文章

  1. 1

    使用 JS 的数组映射 - 将值与另一个数组进行比较并从第二个数组返回值

  2. 2

    翻转键并从另一个数组构造值

  3. 3

    查找索引与另一个数组值匹配的数组值

  4. 4

    将数组中的值与另一个数组中的值进行匹配

  5. 5

    使用另一个数组中的值返回一个数组中的数组

  6. 6

    将函数的静态数组返回到main()函数中的另一个数组

  7. 7

    PHP:如何将一个数组中的键与另一个数组中的值进行比较,并返回匹配项?

  8. 8

    jQuery将一个数组的键与另一个数组的值进行比较并返回匹配项

  9. 9

    将一个数组与另一个数组进行比较,然后返回匹配结果的索引

  10. 10

    检查一个数组的值是否与另一个数组的键匹配-PHP

  11. 11

    获取索引数组,在另一个数组中找到匹配的索引并替换值

  12. 12

    根据匹配值从另一个数组获取新数组

  13. 13

    按另一个数组的匹配值的顺序对numpy数组进行排序

  14. 14

    将数组中的值与另一个数组中的值进行匹配,并将新数组中的对应值作为循环返回

  15. 15

    删除另一个数组的数组值

  16. 16

    从另一个数组返回PHP中的关联数组的函数

  17. 17

    函数根据另一个数组的值从一个数组中提取值

  18. 18

    在另一个数组中查找一个数组的匹配索引

  19. 19

    将一个数组的顺序与另一个数组匹配

  20. 20

    从另一个数组获取匹配索引

  21. 21

    我想比较两个数组,并从1到另一个匹配最高的出现率?

  22. 22

    将键从一个数组匹配到另一个数组,并使用它们的值创建一个新数组?

  23. 23

    JavaScript定义数组大小并从另一个数组克隆

  24. 24

    Numpy用另一个数组的值总结一个数组

  25. 25

    从另一个数组的值派生一个数组

  26. 26

    根据另一个数组的值对一个数组进行排序?

  27. 27

    将一个数组与另一个数组值进行比较

  28. 28

    通过另一个数组中的值过滤一个数组?

  29. 29

    比较一个数组值和另一个数组

热门标签

归档