javascript - 如何从必须通过测试的新数组中返回包含对象的数组中的特定值?
问题描述
您好,我正在尝试找到解决方案,但在我自己的研究中找不到正确的答案,希望有人可以帮助我解决我的问题。该任务要求我必须编写一个函数,该函数在一个新数组中返回每个 16 岁或以上的人的姓名。目标是编写一个在我的示例中返回的函数: ['Jane', 'Jack']
function onlyAdult(obj) {
}
const examplePeopleArray = [
{ name: 'John', age: 15 },
{ name: 'Jane', age: 16 },
{ name: 'Jack', age: 17 }
];
console.log(onlyAdult(examplePeopleArray));
我尝试使用 for 循环来管理任务,该循环遍历数组并连接 if 语句,但这种方式不起作用。在此之后,我尝试使用every()、filter()、forEach()、map()、some() 为我的任务找到正确的方法,但这些方法实际上都不适用于我的任务。
function onlyAdult(obj) {
for (i = 0; i < obj.length; i++) {
if (obj[0].age >= 16) {
return obj[0].age;
} else if (obj[1].age >= 16) {
return obj[1].age;
} else if (obj[2].age >= 16) {
return obj[2].age;
}
}
}
我知道我的代码是错误的,也知道我试图解决它的方式,如果有人可以帮助我,我将不胜感激。
解决方案
您可以先使用过滤数组.filter()
,然后使用.map()
仅获取所需的属性值。
const data = [
{ name: 'John', age: 15 },
{ name: 'Jane', age: 16 },
{ name: 'Jack', age: 17 }
];
const result = data.filter(({ age }) => age >= 16).map(({ name }) => name);
console.log(result);
参考:
推荐阅读
- ansible - 由于引用错误而导致拆分参数时出错 Ansible
- javascript - 如何在回调中获取不可见的系列数据值
- javascript - 表单返回错误时如何在同一页面上显示错误?
- c++ - 在for循环中具有多个条件的冒泡排序
- identityserver4 - Blazor Webassembly:Identityserver4 NullReference AddQueryString
- python - 输入验证错误后在模板中显示 POST 数据
- javascript - 如何删除mongo中每个组的最新文档除外?[解决了]
- java - 数据库列不断恢复为空
- c++ - Sphinx:如何自定义域交叉引用
- python - 在 Python 中获取前一天的数据