如何在函数中传递数组值,该函数将用于引用 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]是一个key,可以这样调用