繁体   English   中英

将值插入多维javascript数组

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM