2017-01-24 55 views
0

我有一個節點應用程序運行快速,我想在傳入的請求正文屬性上轉義撇號,但我不確定這是做到這一點。動態地存儲新的對象屬性值for ... in循環在JavaScript中

我知道我可以使用一個for(prop in req.body)循環遍歷所有請求主體的屬性,但我怎麼能動態地重新分配值,每個屬性?

例如,如果我做

for(prop in req.body) { 
    prop.split("'").join("\\'"); 
} 

後來參考req.body.title(或任何屬性),則該值是不變的。同樣,如果我嘗試將它分配爲req.body.prop = prop.split("'").join("\\'");(希望req.body.prop會隨着每次迭代動態更改),它只會將prop屬性添加到req.body對象。我如何動態迭代和重新分配這些屬性?

+0

[嘗試括號標記(https://stackoverflow.com/問題/ 695050/how-do-i-add-a-property-to-a-javascript-object-using-a-variable-as-the-the-name) - 'req.body [prop] = req.body [prop ] .split(「'」)。join(「\\'」);' –

+0

爲什麼你需要/想逃避它們?通常你只需要這個,如果你例如將它們傳遞給數據庫或類似的數據庫,在這種情況下,那些與需要轉義的服務進行通信的庫通常提供了一種更好的方法。 –

+0

@ t.niese你建議做什麼?我在網上看到的大多數地方只是建議用我所做的事情來剝離它們。 – James

回答

2

如果我正確理解你的要求,你只需要改變你的循環使用括號標記:

for(var prop in req.body) { 
    if (req.body.hasOwnProperty(prop)) 
     req.body[prop] = req.body[prop].split("'").join("\\'"); 
} 

的jsfiddle:https://jsfiddle.net/wsahkozt/1/

+1

如何添加hasOwnProperty檢查? – Kunal

+0

我想這是足夠常見的添加,即使它沒有在問題中指定。我會更新我的答案。 –

+0

我不知道你可以在這裏使用方括號表示法。謝謝! – James

相關問題