如何在函数中传递数组值,该函数将用于引用 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,可以这样调用
当我这样调用下面的函数时:
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,可以这样调用