Javascript 组合JS对象并将其打印出来的最佳方法是什么?
我试图将2JS对象:A和B存储在名为Javascript 组合JS对象并将其打印出来的最佳方法是什么?,javascript,jquery,Javascript,Jquery,我试图将2JS对象:A和B存储在名为data的变量中 JS HTML 我只想把它们打印出来。 我试着用点符号来访问它们。 但目前还没有打印出来 0控制台中出现错误 我做错了什么 有什么提示/建议吗 如果需要,jQuery中提供了html()和text()等函数,但不是本机JavaScript。如果我从您的JSFIDLE中删除这些,我确实会得到输出。通过在JSFIDLE上打开Chrome开发工具并按run键,我很容易发现问题所在——控制台上记录了错误 以下是更新的JSFIDLE: 没有打
data
的变量中
JS
HTML
我只想把它们打印出来。 我试着用点符号来访问它们。 但目前还没有打印出来 0控制台中出现错误 我做错了什么 有什么提示/建议吗 如果需要,jQuery中提供了
html()
和text()
等函数,但不是本机JavaScript。如果我从您的JSFIDLE中删除这些,我确实会得到输出。通过在JSFIDLE上打开Chrome开发工具并按run键,我很容易发现问题所在——控制台上记录了错误
以下是更新的JSFIDLE:
没有打印匿名对象的标准方法。如果您有一个类并且正在创建该类的实例,则可以添加toString
方法。一个问题是对象具有键和值,并且键没有顺序。您可以使用Object.keys(myObject)
访问键,它将返回一个数组。然后您可以迭代数组并打印出键和值
以下是一个例子:
var span = document.getElementById('output');
var myObject = {
a: 10,
b: 'cat',
c: 'San Francisco'
};
span.innerHTML = Object.keys(myObject).map(function(key) {
return key + ': ' + myObject[key];
}).join(', ');
JSFiddle:
对我来说,在OSX上最新的Google Chrome上,它是按a、b、c的顺序打印的,但这个顺序不能保证,记住这一点很重要
如果您只需要一个可打印的对象,还可以使用JSON.stringify
将该对象序列化为JSON。这将为上述示例对象提供如下输出:
'{"a":10,"b":"cat","c":"San Francisco"}'
参考资料:我建议使用
elem.textContent
// example: dump entire object contents using JSON.stringify
print_a.textContent = JSON.stringify(data.A);
print_b.textContent = JSON.stringify(data.B);
单击下面的“运行代码段”以查看它是否正常工作
var数据={
“A”:{“section_num”:“2.2”,“习题集”:“相同”,“开始时间”:“7/20/2015 10:00 am”,“学生上午”:“9”,“到期时间”:“7/20/2015 11:00 am”,“提交”:“9”,“平均分数”:“71”,“危险”:“5”,“危险列表”:“5,10,15,19,23”,“警告”:“8”,“警告列表”:“3,7,11,13,14,16,21,22”,“成功”:“12”,“成功列表”:“1,2,4,6,8,9,12,18,25,18,18,18,18,18,18,18,18,18,18,18,18,18,18”,
“B”:{“section_num”:“2.3”,“习题集”:“不一样”,“开始时间”:“2015年6月19日下午1:00”,“学生上午”:“23”,“到期时间”:“2015年6月19日下午2:00”,“提交”:“7”,“平均分数”:“82”,“危险”:“10”,“危险列表”:“11,12,13,14,15,16,17,18,19,20”,“警告”:“10”,“警告列表”:“1,2,3,4,5,6,7,8,9,10”,“成功列表”:“5”,“成功列表”:“21,21,24,25”
};
var print_a=document.getElementById(“print_a”);
var print_b=document.getElementById(“print_b”);
打印a.textContent=data.a.start\u时间;
print_b.textContent=data.b.start_时间代码>
div{
背景色:#fafafa;
填充:10px;
利润率:0.10px;
字体系列:monospace;
空白:预包装;
}
1)您的HTML格式不正确:
;2) print\u a
变量是DOM元素,而html
是jQuery
object的方法。我不是故意的。你的对象.keys(…)…
代码基本上是在做一个JSON.stringify
。为什么要重新发明轮子?@Cymen:怎么会有一个结果是打印?只是好奇。@naomik,因为它正在按我希望的方式格式化对象——JSON.stringify当然只会将其格式化为JSON。如果你真的把它输出给别人阅读,它会给你灵活性。@Cymen我跟着你。A+@开发人员 抢手货innerHTML上有一个输入错误——它有一个额外的“n”。我修复了它并更新了链接:我只想打印某个对象而不是全部?你能告诉我怎么做吗@开发人员 我已经更新了代码片段。重新运行它,查看它现在只从每个对象输出start\u time
字段。如果这对你很重要的话,要注意一些事情。
'{"a":10,"b":"cat","c":"San Francisco"}'
// example: dump entire object contents using JSON.stringify
print_a.textContent = JSON.stringify(data.A);
print_b.textContent = JSON.stringify(data.B);