【问题标题】:Reviews returning as [Object Object]返回为 [Object Object] 的评论
【发布时间】:2019-09-12 19:43:27
【问题描述】:

我正在尝试使用 Zomato api 提取一些数据。但是,我被困在评论中。我似乎无法获得评论,因为我最终将 [Object Object] 作为文本的值。如果有人知道如何让评论显示为文本,请告诉我。

链接到实际代码:https://jsfiddle.net/fxrzm/nkLrh8fg/4/

const {thumb:img,name,location:{address},all_reviews:{reviews},user_rating:{aggregate_rating},cuisines,average_cost_for_two:cost} = restaurant.restaurant;

// 如您所见,我能够在 const 中提取除评论之外的其他数据。

【问题讨论】:

    标签: javascript zomato-api


    【解决方案1】:

    评论很可能是 json 对象,您需要从评论中提取相关部分才能显示。以以下为例:

    const reviews = [
      { html: '<p>great</p>' },
      { html: '<p>awesome</p>' },
      { html: '<p>meh</p>' },
    ];
    
    const div1 = document.getElementById('straight');
    div1.innerHTML = `${reviews}`;
    
    
    const div2 = document.getElementById('mapped');
    div2.innerHTML = `${reviews.map(r => r.html).join('')}`;
    <div id="straight"></div>
    <div id="mapped"></div>

    【讨论】:

      【解决方案2】:

      在 Javascript 中,数组是对象。评论也可能是一个常规的 {} 对象。 [Object Object] 是我对控制台日志的期望,因为控制台日志不会遍历对象并显示它们的所有值(如果它们像这样嵌套)。您应该控制台登录 restaurant.restaurant.reviews 并获取结构。这样你就会对结构有更多的了解。我总是尝试更深一层,直到结构合理为止。

      好消息是你可能有你想要的数据,你只是看不到它。

      更新:我重新阅读了您的问题。如果您使用的是 es6,您可能想尝试使用扩展运算符来复制键和值,而不是在新对象中嵌套数组或对象。 all_reviews:{...reviews}.

      【讨论】:

      • 由于某种原因它在控制台中返回未定义
      猜你喜欢
      • 2020-05-24
      • 2011-07-13
      • 2013-09-13
      • 2015-01-24
      • 1970-01-01
      • 1970-01-01
      • 2023-03-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多