所以我现在正在构建一个随机引用生成器,每当我尝试从我的对象追加值时,它就会返回:
[object Object]
这是我的代码:
$("#quoteBubble").append("<p>" + quotes[Math.floor(Math.random() * quotes.length)] + "</p>");
此外,这是我的对象/数组的总体布局:
var quotes = [{
"quote": "eeyyy sik beets yo.",
"author": "Jamen Marz"
},
如果有人在这里可以帮助我解决我的问题,那将非常感激:D
修改:这是指向我的CodePen的链接 - http://codepen.io/Jelani/pen/ojYZaa?editors=101
答案 0 :(得分:3)
你有一个对象数组,所以
quotes[Math.floor(Math.random() * quotes.length)]
将返回该数组中的一个对象,如
{
"quote": "eeyyy sik beets yo.",
"author": "Jamen Marz"
}
原样,您的代码正在尝试打印对象本身,而不是您在其中定义的属性之一。因此,您需要指定要打印的属性,即
quotes[Math.floor(Math.random() * quotes.length)].quote
//or
quotes[Math.floor(Math.random() * quotes.length)].author
答案 1 :(得分:3)
您需要访问该酒店。将其更改为
$("#quoteBubble").append("<p>" + quotes[Math.floor(Math.random() * quotes.length)].quote + "</p>");
访问引用属性
或者如果你真的想得到对象的字符串符号,请使用JSON.stringify(...)
$("#quoteBubble").append("<p>" + JSON.stringify(quotes[Math.floor(Math.random() * quotes.length)]) + "</p>");
答案 2 :(得分:2)
这是因为你的quote变量实际上是一个对象数组。因此,调用quotes[0]
会带来一个具有两个属性的对象。调用quotes[n].quote
将自带引号,并且调用quote[n].author
将使作者从同一引号中获取。 (0