首页 > 解决方案 > 查找关系数组和对象

问题描述

let data = [{
    name: "Sarah",
    year: ["1924", "1936", "1948", "1960", "1972", "1984", "1996", "2008", "2020", "2032"]
  },
  {
    name: "Ann",
    year: ["1925", "1937", "1949", "1961", "1973", "1985", "1997", "2009", "2021", "2033"]
  }
];

我们分配一个数组,数组内部有两个对象,每个对象都有另一个数组。

我想问用户她的出生年份并从名称中的对象值中选择她的名字。

例如,如果她出生于 1949 年,她的名字必须是 Ann,或者如果她出生于 1960 年,她的名字必须是 Sarah。

我正在考虑两天,但我无法解决这个问题。

我不想编写代码 if/else 或 case 切换状态。还有其他代码选项吗?我想在姓名和年份之间建立关联。

我希望我解释清楚..

标签: javascriptarraysobjectif-statementcase

解决方案


我想这就是你要找的

let data = [{
  name: "Sarah",
  year: ["1924", "1936", "1948", "1960", "1972", "1984", "1996", "2008", "2020", "2032"]
}, {
  name: "Ann",
  year: ["1925", "1937", "1949", "1961", "1973", "1985", "1997", "2009", "2021", "2033"]
}];

function yearToName(year) {
  return data.find(x => x.year.includes(year)).name;
}

console.log(yearToName("1936"))
console.log(yearToName("1937"))


推荐阅读