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