我已经设置了一个名为Array
的{{1}},我正在将API的结果推送到questions
,这没有任何问题。
如果我对数组进行硬编码,我会像这样设置它。
Array
但是当我使用var questions = [
{
"The Eiffel Tower is located where in Paris?": [
"Champ de Mars",
"Bois de Boulogne",
"Jardin des Plantes",
"Parc de Belleville"
]
}
]
方法时,我最终得到了这个:
questions.push
为什么在我的搜索结果中添加了一个奇怪的var questions = [ '
{
"Which of the following was not one of 'The Magnificent Seven'?": [
"Clint Eastwood",
"Steve McQueen",
"Charles Bronson",
"Robert Vaughn"
]
}']
?
以下是我如何将信息添加到我的数组中:
'
我无法理解为什么将var qdata = "{ \"" + question + "\":[ \"" + answer1 + "\", \"" + answer2 + "\", \"" + answer3 + "\", \"" + answer4 + "\"" + "]}";
questions.push(qdata);
添加到我的数组中。
答案 0 :(得分:3)
您正在qdata中创建一个字符串对象并添加到数组中,这就是JavaScript正在做的事情。 '是因为它是一个字符串。
如果您想添加对象,请尝试以下方法:
var objectQuestion = {};
objectQuestion[question] = [answer1, answer2, answer3, answer4];
questions.push(objectQuestion);
答案 1 :(得分:1)
当您声明变量qdata
时,您将其设为String
而不是Object
:"{x: 123}"
vs {x: 123}
,第一个是一个String
,它会使对象{x:123}(第二个例子),如果你要按原样复制粘贴它(当然没有"
)。
所以基本上你只需要将qdata
更改为:
var qdata = {}
qdata[question] = [answer1, answer2, answer3, answer4]
questions.push(qdata)
如果您使用ES6,那么它甚至更短:
questions.push({[question]: [answer1, answer2, answer3, answer4]})
答案 2 :(得分:0)