javascript - 使用forEach访问数组内的对象值?
问题描述
嗨,我在这里的第一个问题。我有一个看起来像这样的对象数组:
const albums = [{title: 'title1', id: 1}, {title: 'title2', id: 2},
{title: 'title3', id: 3}]
从这个数组中,我想通过 id 提取 title 的动态值。这意味着如果我在此运行一个函数,我想在 id 指定为“1”时接收“title1”。我已经尝试了很多东西,包括现在看起来像这样的 forEach 循环:
albums.forEach(function(key, index, arr) {
arr[index].title })
我在本网站的其他地方读到 for/forEach 循环可用于从对象数组中的对象中提取值。但我想我并不完全理解 forEach 循环在这方面是如何工作的,因为我无法从中提取任何价值。如果在 forEach 循环中我调用了一个 console.log (所以console.log(arr[index].title)
它很好地记录了数组中每个元素的 title 属性的值。但是当我尝试返回 ( return arr[index].title
) 并调用该函数时,它出现为未定义。
所以总而言之,我有这两个问题:
访问对象数组内的对象内的值的最佳方法是什么?
当尝试访问对象数组中的对象时,forEach 循环如何准确地工作?
感谢您的任何意见、建议、反馈
解决方案
试试这个代码:
const albums = [{ title: 'title1',id: 1}, {title: 'title2',id: 2},{title: 'title3',id: 3}]
var idToFind = 2;
albums.forEach((element) => {
if (element.id == idToFind) {
console.log(element.title)
}
})
推荐阅读
- javascript - 获取 TypeError:repos.map 不是函数
- pandas - Pandas - 提取两个字符串之间的文本
- reactjs - React Native 本地图像加载缓慢
- python - 给出数据模式的代码(不应使用统计信息下可用的函数)
- c# - 我可以在每次任务运行时更新私有静态日期时间吗(C# - 石英调度器)
- regex - 如何在 bigquery 中使用 REGEX 获取字符串
- c++ - 辛>>a>>b; C++ 中的错误
- angularjs - lodash 升级后的错误
- javascript - 过渡圆弧时出错:
属性 d:预期的弧标志('0' 或 '1') - vue.js - 主题风格似乎凌驾于一切之上