javascript - 基本配置文件查找始终返回未找到联系人

标签 javascript arrays

所以我最近开始使用 freecodecamp 上的教程学习 Javascript,并且我已经在这个挑战上坚持了几个小时了。

该函数总是返回“未找到联系人”,我不明白为什么。如果有人向我解释并纠正我的代码,我将不胜感激。

var contacts = [
    {
        "firstName": "Akira",
        "lastName": "Laine",
        "number": "0543236543",
        "likes": ["Pizza", "Coding", "Brownie Points"]
    },
    {
        "firstName": "Harry",
        "lastName": "Potter",
        "number": "0994372684",
        "likes": ["Hogwarts", "Magic", "Hagrid"]
    },
    {
        "firstName": "Sherlock",
        "lastName": "Holmes",
        "number": "0487345643",
        "likes": ["Intriguing Cases", "Violin"]
    },
    {
        "firstName": "Kristian",
        "lastName": "Vos",
        "number": "unknown",
        "likes": ["Javascript", "Gaming", "Foxes"]
    }
];


function lookUpProfile(firstName, prop) {

  for (var i=0; contacts.length>i; i++) {

    if (contacts[i][firstName]==firstName) {
      if (contacts.i.prop.hasOwnProperty()===true) {
        return contacts.i.prop;
      } else { return "No such property";
     }
    } 
      return "No such contact"; }
}

lookUpProfile("Akira", "lastName");

最佳答案

最好使用Array.prototype.find()来实现:

function findByProp(list, val, prop) {
  let found = list.find(el => el[prop] === val);
  return found ? found[prop] : "No contact found";
}

var contacts = [{
    "firstName": "Akira",
    "lastName": "Laine",
    "number": "0543236543",
    "likes": ["Pizza", "Coding", "Brownie Points"]
  },
  {
    "firstName": "Harry",
    "lastName": "Potter",
    "number": "0994372684",
    "likes": ["Hogwarts", "Magic", "Hagrid"]
  },
  {
    "firstName": "Sherlock",
    "lastName": "Holmes",
    "number": "0487345643",
    "likes": ["Intriguing Cases", "Violin"]
  },
  {
    "firstName": "Kristian",
    "lastName": "Vos",
    "number": "unknown",
    "likes": ["Javascript", "Gaming", "Foxes"]
  }
];

function findByProp(list, val, prop) {
  let found = list.find(el => el[prop] === val);
  return found ? found[prop] : "No contact found";
}

console.log(findByProp(contacts, "Akira", "firstName"));
console.log(findByProp(contacts, "foo", "firstName"));

关于javascript - 基本配置文件查找始终返回未找到联系人,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45118182/

相关文章:

php - 来自动态函数名称的 Javascript 新对象实例

javascript - 如何在 javascript/jquery 事件后更改 Django 中的服务器端数据?

javascript - 在 JavaScript 中检查正方形是否与直线相交

c++ - 初始化指向 int 数组的指针

javascript - PHP 排序数组在 json_encode 后在 JS 中未排序

javascript - 如何使用javascript从对象数组中获取键的唯一值?

javascript - 如何使用 jquery $.proxy 事件附加获取当前选定的值

Python:生成范围内值的所有n长度数组组合

arrays - 如何访问这个结构数组 - Swift

javascript - 在纯 JavaScript 的表单输入中输入时如何禁止特定字符?