【问题标题】:Accessing a value from a nested array in JSON从 JSON 中的嵌套数组访问值
【发布时间】:2022-01-14 03:24:45
【问题描述】:
const data = fs.readFileSync('./movies.JSON');
data.toString();
var obj = JSON.parse(data);
console.log(Object.values(obj.moviesList));

这是我的 js 文件。这将打印我的 JSON 文件的所有密钥和对。我正在尝试访问 JSON 文件中的嵌套数组。我试过console.log(Object.values(obj.moviesList.actors==="206'));

还有许多其他变体。

    "moviesList":[
    {
        "movieId": 4192148,
        "title": "Highly Functional",
        "actors": [
            3188187,
            3306943,
            132257,
            47265
        ]
    },

这是我的 JSON 文件的一个小 sn-p,其中包含嵌套数组。

我想首先打印出演员 ID 为 206 的所有电影 ID。

【问题讨论】:

    标签: javascript json parsing nested frontend


    【解决方案1】:

    如果您正在扫描嵌套数组,这是使用includes 检查演员数组的一种方法。

    const moviesList = [{
        "movieId": 4192148,
        "title": "Highly Functional",
        "actors": [
          3188187,
          3306943,
          132257,
          47265
        ]
      },
      {
        "movieId": 11111,
        "title": "Highly Functional2",
        "actors": [
          3188187,
          3306943,
          206,
          47265
        ]
      },
      {
        "movieId": 11112,
        "title": "Highly Functional3",
        "actors": [
          3188187,
          3306943,
          206,
          47265
        ]
      }
    ];
    
    let matches = [];
    for (const movie of moviesList) {
      const { actors, movieId } = movie;
      if (actors.includes(206)) {
        matches.push(movieId);
      }
    }
    
    console.log(matches);
    
    // Another format
    
    matches = moviesList
      .filter(({ actors }) => actors.includes(206))
      .map(({ movieId }) => movieId)
      
      
    console.log(matches);

    【讨论】:

    • 但由于您从未读过 JSON 文件,所以 sn-p 不会导致 moviesList 未定义吗?
    • 我没有你的 movies.json 文件,也不能在浏览器中运行 node.js。但是,希望这显示了如何过滤感兴趣的演员 ID 的数据,一旦 JSON 被解析,并且你有一个对 moviesList 数组的引用。
    • 谢谢,看看我能用这个做什么!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-04-12
    • 1970-01-01
    • 2019-12-05
    • 1970-01-01
    • 2019-01-22
    • 1970-01-01
    • 2017-11-27
    相关资源
    最近更新 更多