簡體   English   中英

如何在將用於引用Pouchdb中的JSON名稱的函數中傳遞數組值?

[英]How can I pass an Array value in a function that will be used reference a JSON name in Pouchdb?

當我這樣調用下面的函數時:

showTableTest("db", "testTable", "action", "context","projectName")

我想在函數中使用arguments [2]作為JSON名稱(即“ action”)。

像這樣直接引用名稱時:

 genTable+="<td>" + result.rows[q].doc.action + "</td>";

返回正確的值

但是,當我這樣引用它們時:

  genTable+="<td>" + result.rows[q].doc.column[2] + "</td>";

我收到以下錯誤:

 Uncaught (in promise) TypeError: Cannot read property '2' of undefined

如何正確傳遞此值?

function showTableTest (dbName,idOfTable) {
    var column = arguments;  
    var argNum = arguments.length;
    var genTable = "<table class='responsive'>";
    genTable+= "<tr>";
    for (var i=2,  tot=argNum; i < tot; i++) {
      genTable+= "<th>" + arguments[i] + "</th>"; 
    }
    genTable+= "</tr>";
    db.allDocs({include_docs: true, attachments: true}).then(function (result) {
      for (var q=0,  tot=result.rows.length; q < tot; q++) {
        genTable+="<tr>";
        for (var c=2,  all=argNum; c < all; c++) {
          genTable+="<td>" + result.rows[q].doc.action + "</td>";
          genTable+="<td>" + result.rows[q].doc.column[2] + "</td>";
        }
        genTable+="</tr>";
      } 
      genTable+="</table>";
      document.getElementById(idOfTable).innerHTML = genTable;
   });
  }

有一個演示如何通過鍵入code snippet從json進行調用,因此您的代碼

genTable+="<td>" + result.rows[q].doc.column[2] + "</td>";

應更改為

genTable+="<td>" + result.rows[q].doc[column[1]] + "</td>";

 showTableTest("name", "id"); function showTableTest(dbName, idOfTable) { var column = arguments; var argNum = arguments.length; console.info(column[1]);//your idOfTable index is No 1 } 

result.rows[q].doc[column[2]]

column[2]是鍵,您可以像這樣調用

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM