【问题标题】:Javascript Object declaration creates [object Object]Javascript 对象声明创建 [object Object]
【发布时间】:2023-04-09 15:12:01
【问题描述】:

我正在尝试创建一个 javascript 代码,该代码将从某个 api 下载所有数据,按某些值对其进行过滤并将其作为对象返回。但是我在正确声明对象时遇到问题。由于我的输出如下所示:https://imgur.com/a/FcZmr 并且我无法通过控制台访问任何对象。谁能帮帮我?

function renderHTML(data) {
var htmlString = new Object();

for (var i = 0; i < data.length; i++) {
    htmlString += "<p>" + data[i].name; "</p>"
    htmlString += "<p>" + data[i].flag; "</p>"
    htmlString += "<p>" + data[i].translations.de; "</p>"
    htmlString += "<p>" + data[i].translations.es; "</p>"
}

countryContainer.insertAdjacentHTML('beforeend', htmlString);

【问题讨论】:

  • var htmlString = new Object();更改为var htmlString = '';
  • 为什么要将一个 HTML 字符串 初始化为对象?
  • 这不是最明智的做法。我已经按照您的建议更改了线路。输出似乎没问题,但我仍然无法访问控制台中的对象。并且可以将 htmlString 视为具有值 name、flag 和 translations 的对象吗?
  • 字符串就是字符串。听起来您想创建 DOM 对象,例如document.createElement('p')
  • 根据你想要的,你应该写类似 ** var htmlString = data; ** 像这样,您可以通过控制台使用 htmlString[0] 访问 htmlstring,例如,访问对象

标签: javascript json api object


【解决方案1】:

您将htmlString 声明为一个对象,然后在其上使用字符串操作数。

所以你必须首先将它声明为一个字符串:

var htmlString = '';

此外,示例代码缺少结束 }

【讨论】:

    【解决方案2】:

    您正在尝试将字符串附加到对象,这是不可能的。您还试图用分号连接,这也是错误的。 你的代码应该像这样工作

    function renderHTML(data) {
    var htmlString = '';
    
    for (var i = 0; i < data.length; i++) {
        htmlString += "<p>" + data[i].name + "</p>";
        htmlString += "<p>" + data[i].flag + "</p>";
        htmlString += "<p>" + data[i].translations.de + "</p>";
        htmlString += "<p>" + data[i].translations.es + "</p>";
    }
    }
    
    countryContainer.insertAdjacentHTML('beforeend', htmlString);
    

    您也可以使用 foreach

    data.forEach(function(element){
        htmlString += "<p>" + element.name + "</p>";
        htmlString += "<p>" + element.flag + "</p>";
        htmlString += "<p>" + element.translations.de + "</p>";
        htmlString += "<p>" + element.translations.es + "</p>";
    });
    

    【讨论】:

      猜你喜欢
      • 2012-02-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-19
      • 2013-01-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多