[英]Inserting values into multi-dimentional javascript array
我需要动态创建一个与该布局匹配的多维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中有更简单的方法?
如果我对您的理解正确,那么您正在尝试将问题和提示(也许吗?)存储在多维数组中。 让我提出另一种可行的方法。
const array_answers = questions.map(q => [q, "yes, no, other text"]);
这可能就是您想要的
我仍然不能100%地确定您的需求,但是我想我会根据自己的假设写一个答案,以便我可以随着信息的改善而更新。
第一个“ []”定义页面上的问题(在totalInputs中)
这部分看起来像您是正确的,并且需要使用数组。 但是,数组只是“事物”列表(在您的情况下是问题)。 所以你有这行:
array_answers.push([i]);
我不确定它在做什么您的期望。 这将添加一个新的数组项,该数组项本身就是一个包含单个数字的数组。 因此,如果totalInputs
为3,则第一行将导致此结构:
array_answers= [[0],[1],[2]]
我认为您实际上可能打算在这里放置一系列问题的详细信息。 现在,由于为第二维列出的键的复杂性,看起来对象更合适。
第二个“ []”定义这是数据库中的什么问题(已经存在问题以匹配相应的输入)
因此,让我们继续创建一个问题。
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]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.