【问题标题】:Cannot get data from a js array with Node js无法使用 Node js 从 js 数组中获取数据
【发布时间】:2017-08-06 18:29:24
【问题描述】:

我有一个这样的js对象数组。

[  
   {  
      name:"Japanilainen ravintola Koto",
      rating:3.9,
      photo:[  
         {  
            height:2160,
            html_attributions:[  
               "<a href="               https://maps.google.com/maps/contrib/110335983983267481647/photos">Hannes Junnila</a>"
            ],
            photo_reference:"CoQBdwAAAMDlivT0nOnYg8jC1txZ3RbfBR59XvKN0WphDbRVUXaUTQclzzaIaXJ8-p7s3x_aG67AUsM_HLNML6pzGl3v_wV2D-eudH_3wy2cB1ROrRgGcGyf4lRuNpE3WwXYbYZu6EK8oEPiJ5B17Lybj-eVbYM2EgVVBgOrUJhsblY1mfxWEhAZ4oHCFakH-hgkbksfGa2uGhQe4aUeOrS2isAir01KUwQ7N3Ce2Q",
            width:2269
         }
      ]
   },
   {  
      name:"Kin Sushi Helsinki",
      rating:4.2,
      photo:[  
         {  
            height:2988,
            html_attributions:[  
               "<a href="               https://maps.google.com/maps/contrib/103078599092779880596/photos">Stephan Winter</a>"
            ],
            photo_reference:"CoQBdwAAAN4iMumSbQjtRnJIH1AKRdbSfnI02WGh11r1xaVnZl1ohebKp6zpAS4mmJFqTagrIqUJ39kzulVI0sz2UzzfaVdsAFc5f80PnOCzSLqL5gnpsqv90dVJIqUWD3Bcc9TgYPPs3oGwyekkOsmjQ59o9yqdoF5GzrpaKkojhMNLxpfzEhBKpRkA2CzINpUzAAe3e90TGhQ_KbYCmtJYLfVGIu1kZkzQIAwE4A",
            width:5312
         }
      ]
   }
]

我通过对每个都执行此操作来获得上面的这个数组。

response.results.forEach((entry)=>{
         var restaurantName = {
          "name" : entry.name,
          "rating" : entry.rating,
          "photo_reference" : entry.photos
        }
        arr.push(restaurantName);
      });
        res.send(arr);

然后我将数组发送到我的浏览器以便我可以看到它。 我想做的是从entry.photos 获取photo_reference 我尝试了entry.photos[0].photo_reference 和更多方法,但在所有这些方法中我都无法正确阅读,现在我不确定如何获取这些信息。

【问题讨论】:

    标签: arrays node.js javascript-objects


    【解决方案1】:

    entry.photoes 未在您的 response.results 对象数组中定义。您的意思是作为 entry.photo 访问它吗(在您的 foreach 函数中)?

    【讨论】:

    • 是的,我做到了。你能帮我吗
    • 尝试使用调试器...它会显示您正在使用错误的键访问属性
    【解决方案2】:

    我编辑了一些变量名称以便在此处进行模拟,但只是将map 数组中的对象photo 引用到它们的引用,您将获得一组照片引用。

    const data = [  
       {  
          name:"Japanilainen ravintola Koto",
          rating:3.9,
          photo:[  
             {  
                height:2160,
                html_attributions:[  
                   '<a href="https://maps.google.com/maps/contrib/110335983983267481647/photos">Hannes Junnila</a>'
                ],
                photo_reference:"CoQBdwAAAMDlivT0nOnYg8jC1txZ3RbfBR59XvKN0WphDbRVUXaUTQclzzaIaXJ8-p7s3x_aG67AUsM_HLNML6pzGl3v_wV2D-eudH_3wy2cB1ROrRgGcGyf4lRuNpE3WwXYbYZu6EK8oEPiJ5B17Lybj-eVbYM2EgVVBgOrUJhsblY1mfxWEhAZ4oHCFakH-hgkbksfGa2uGhQe4aUeOrS2isAir01KUwQ7N3Ce2Q",
                width:2269
             }
          ]
       },
       {  
          name:"Kin Sushi Helsinki",
          rating:4.2,
          photo:[  
             {  
                height:2988,
                html_attributions:[  
                   '<a href="https://maps.google.com/maps/contrib/103078599092779880596/photos">Stephan Winter</a>'
                ],
                photo_reference:"CoQBdwAAAN4iMumSbQjtRnJIH1AKRdbSfnI02WGh11r1xaVnZl1ohebKp6zpAS4mmJFqTagrIqUJ39kzulVI0sz2UzzfaVdsAFc5f80PnOCzSLqL5gnpsqv90dVJIqUWD3Bcc9TgYPPs3oGwyekkOsmjQ59o9yqdoF5GzrpaKkojhMNLxpfzEhBKpRkA2CzINpUzAAe3e90TGhQ_KbYCmtJYLfVGIu1kZkzQIAwE4A",
                width:5312
             }
          ]
       }
    ]
    
    const arr = []
    data.forEach((entry)=>{
      var restaurantName = {
        "name" : entry.name,
        "rating" : entry.rating,
        "photo_reference" : entry.photo.map(x => x.photo_reference)
      }
    
      arr.push(restaurantName);
    });
    
    console.log(arr);

    【讨论】:

    • 检查对象中的所有变量名和属性名。这只是意味着您引用了一个无效的名称
    • 如果我只添加 entry.photo 一切正常,如果我添加 .map 并且你说的功能崩溃了。
    猜你喜欢
    • 2018-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-24
    • 2021-07-10
    • 1970-01-01
    • 2019-08-11
    • 2019-01-29
    相关资源
    最近更新 更多