![](/img/trans.png)
[英]How to save map<String,list<String>> to another map of same type by self checking the values for its key's value
[英]How to read Map<String,List<String>> and get key and values in LWC JavaScript?
數據來自 Controller 之類的Map<String,List<String>
並且需要在 Javascript 中讀取 Map。 我嘗試使用 keyset() 獲取密鑰,但失敗了。
地圖中的原始數據是:
{"error":["Error Fields: (FirstName) : FirstName required.","Error Fields: (Phone) : Office Phone Number Required.","Error Fields: () : House Phone number required"]}
在上面的數據中,我想根據 Key 'error' 循環值 List。
使用以下解決方案解決了上述問題。 但是現在我遇到了在 HTML 頁面中逐行顯示錯誤消息的問題。 我曾經使用 \\n 來划分錯誤消息,但是在控制台中打印,它看起來不錯。 但是當我傳遞給 HTML 時,它再次顯示在彼此旁邊。 這是代碼。
result['error'].forEach( x=>{
errMsg += x+ '\n';
});
this.showErrorMessage = true;
結果在控制台:
errorMessage*****
FirstName Required.
Office Phone Number Required.
House Phone number required
但是在 HTML 中顯示時,它會像這樣並排顯示:FirstName Required。 辦公室電話號碼 必填。 需要家庭電話號碼。
HTML代碼:
<template if:true={showErrorMessage}>
<div>
<h6 style="color: red;">{errMsg }</h6>
</div>
</template>
JavaScript 沒有keyset
方法,您可能將它與 Apex 混淆了?
你可以這樣做,有點老派,但如果你想要可讀性
let x = {
"error":[
"Error Fields: (FirstName) : FirstName required.",
"Error Fields: (Phone) : Office Phone Number Required.",
"Error Fields: () : House Phone number required"
]
};
if(x && x.error && x.error.length){
for(let i = 0; i < x.error.length; ++i){
console.log(x.error[i]);
}
}
或者,如果您對現代 JavaScript 和回調函數感到滿意,則可以使用array.map方法
x.error.map(function(row){
console.log(row);
});
甚至“箭頭函數”
console.log(x.error.map(i => i));
如果您開始使用 Lightning Web Components 入門,如https://trailhead.salesforce.com/en/content/learn/modules/modern-javascript-development可能會有所幫助。 或者任何關於 EC6 的在線課程(EcmaScript 6,你會在一些 LWC 教程中看到很多的 JavaScript 規范版本)。 有一些黑魔法,如擴展運算符、箭頭函數,需要一段時間才能習慣。
從編寫更冗長但可讀的代碼開始,然后慢慢轉向更高級的語法並沒有錯,特別是如果您在大團隊中並且不是每個人都是 JS 之神。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.