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