我需要动态创建一个与此布局匹配的多维javascript数组:
array_answers [0] [1]:"是"
array_answers [1] [2]:"无"
array_answers [2] [2-subquestion]:"文本输入"
array_answers [3] [8]:"是"
array_answers [4] [8-subquestion]:"文本输入"
第一个" []"定义页面上的问题(出自 totalInputs )
第二个" []"定义数据库中的哪个问题(问题已经是为了匹配相应的输入)
以下信息是我试图添加的输入
我尝试了以下但没有运气。
for(var i = 0; i < totalInputs; i++) {
array_answers.push([i]);
array_answers[i].push([questions[i]]);
array_answers[i][0] = "yes, no, or other text";
}
最后一行是分崩离析的地方。我有意义的是,我应该能够使用[0]来表示我希望第一个数组被赋予这个值,但没有用。
我也尝试过:
for(var i = 0; i < totalInputs; i++) {
array_answers.push([i]);
array_answers[i].push([questions[i]]);
array_answers[i][questions[i]] = "yes, no, or other text";
}
但这给了我很多空数组,用于从0到问题[i]的任何值的所有数字。
我还缺少什么,或者是否有更简单的方法在jQuery中执行此操作,同时仍然符合目标布局?
答案 0 :(得分:0)
如果我理解正确,你试图在多维数组中存储问题和提示(可能?)。让我建议一种应该有效的不同方式。
const array_answers = questions.map(q => [q, "yes, no, other text"]);
这可能是你想要的
答案 1 :(得分:0)
我仍然不能100%确定你需要什么,但我想我会用我的假设写一个答案,我可以随着信息的改进而更新。
第一个&#34; []&#34;定义页面上的问题(在...之外) totalInputs)
这部分看起来你是对的,需要使用一个数组。但是数组只是一个&#34;事物的列表,在你的情况下,问题。所以你有这条线:
array_answers.push([i]);
我不确定它是在做你期望的事情。这是添加一个新的数组项,它本身就是一个包含单个数字的数组。因此,如果totalInputs
为3,那么第一行将导致此结构:
array_answers= [[0],[1],[2]]
我认为你真正想要的是简单地提出一系列问题细节。现在,通过为第二维列出的键的复杂性,看起来对象更合适。
第二个&#34; []&#34;定义数据库中的哪个问题 (问题已经是为了匹配相应的输入)
所以,让我们继续创建一个问题。
var question = {
anythingYouWant: 'here',
2: 'even numeric keys'
}
// you can access the values in these ways
console.log(question.anythingYouWant)
console.log(question[2])
console.log(question['anythingYouWant'])
现在,一旦有了问题对象,您就可以通过推送将其添加到array_answers
数组中。
array_answers.push(question).
如果您有两个完全相同的问题,那么您的数组将如下所示:
array_answers = [{
anythingYouWant: 'here',
2: 'even numeric keys'
},{
anythingYouWant: 'here',
2: 'even numeric keys'
}]
为了访问数组中的问题,您只需使用它们的索引:
// access second question
var secondQuestion = array_answers[1]