2015-07-12 47 views
0

當我調用下面的函數是這樣的:我該如何傳遞一個函數中的數值,這個函數將在Pouchdb中引用JSON名稱?

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

我想使用參數[2]作爲函數的JSON名稱(即「行動」)。

當名字被直接引用這樣的:

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

我收到以下錯誤:

genTable+="<td>" + result.rows[q].doc.action + "</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; 
    }); 
    } 

回答

0

有一個演示如何從JSON通過鍵code snippet打電話,讓你的代碼

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

shouled改爲

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]是一個關鍵,你可以這樣打電話

+0

太棒了!非常感謝。 – EdgarAllenPoe

相關問題