Files
2021-10-27 21:47:35 +05:30

3.1 KiB

id, title, challengeType, videoUrl, forumTopicId, dashedName
id title challengeType videoUrl forumTopicId dashedName
5688e62ea601b2482ff8422b 資料查找 1 https://scrimba.com/c/cDqW2Cg 18259 profile-lookup

--description--

我們有一個對象數組,裏面存儲着通訊錄。

lookUpProfile 函數已經寫好了參數,需要 name 和屬性 (prop) 參數。

函數將會檢查通訊錄中是否存在一個 firstName 與傳入的 name 相同的聯繫人。 如果存在,那麼還需要檢查對應的聯繫人中是否存在 prop 屬性。

如果它們都存在,函數返回 prop 屬性對應的值。

如果 name 不對應於任何聯繫人,然後返回字符串 No such contact

如果 prop 屬性在匹配 name 的聯繫人裏不存在,返回 No such property

--hints--

lookUpProfile("Kristian", "lastName") 應該返回字符串 Vos

assert(lookUpProfile('Kristian', 'lastName') === 'Vos');

lookUpProfile("Sherlock", "likes") 應該返回 ["Intriguing Cases", "Violin"]

assert.deepEqual(lookUpProfile('Sherlock', 'likes'), [
  'Intriguing Cases',
  'Violin'
]);

lookUpProfile("Harry", "likes") 應該返回一個數組

assert(typeof lookUpProfile('Harry', 'likes') === 'object');

lookUpProfile("Bob", "number") 應該返回字符串 No such contact

assert(lookUpProfile('Bob', 'number') === 'No such contact');

lookUpProfile("Bob", "potato") 應該返回字符串 No such contact

assert(lookUpProfile('Bob', 'potato') === 'No such contact');

lookUpProfile("Akira", "address") 應該返回字符串 No such property

assert(lookUpProfile('Akira', 'address') === 'No such property');

--seed--

--seed-contents--

// Setup
const 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(name, prop) {
  // Only change code below this line

  // Only change code above this line
}

lookUpProfile("Akira", "likes");

--solutions--

const 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(name, prop) {
  for (let i in contacts) {
    if (contacts[i].firstName === name) {
      return contacts[i][prop] || "No such property";
    }
  }
  return "No such contact";
}