簡體   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