首页 > 解决方案 > 使用forEach访问数组内的对象值?

问题描述

嗨,我在这里的第一个问题。我有一个看起来像这样的对象数组:

    const albums = [{title: 'title1', id: 1}, {title: 'title2', id: 2}, 
{title: 'title3', id: 3}]

从这个数组中,我想通过 id 提取 title 的动态值。这意味着如果我在此运行一个函数,我想在 id 指定为“1”时接收“t​​itle1”。我已经尝试了很多东西,包括现在看起来像这样的 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) 并调用该函数时,它出现为未定义。

所以总而言之,我有这两个问题:

  1. 访问对象数组内的对象内的值的最佳方法是什么?

  2. 当尝试访问对象数组中的对象时,forEach 循环如何准确地工作?

感谢您的任何意见、建议、反馈

标签: javascriptarraysnestedjavascript-objects

解决方案


试试这个代码:

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)
  }
})


推荐阅读