簡體   English   中英

Underscorejs-更改JSON數組中的值

[英]Underscorejs - change values in JSON array

我有來自服務器的json對象數組:

var a = [
{id:1,name:"Piano",class:"Instrument"},
{id:2,name:"Guitar",class:"null"},
{id:3,name:"null",class:"null"},.....]

使用underscorejs,是否有可能遍歷這些對象並使用空字符串""更改每個鍵中的每個"null"值?

使用_.each() *方法遍歷集合及其對象,並用空字符串替換等於“ null”的值。 因此,邏輯與使用嵌套循環遍歷二維數組的邏輯相同。

*我不建議在這里使用_.map() ,因為此方法將產生新的修改后的數組,我也不知道是否需要此數組,盡管如果您願意,也可以使用_.each(obj)映射數組。在映射函數中。

 var arr, searchVal, replaceVal; arr = [ {id: 1, name: "Piano", class: "Instrument"}, {id: 2, name: "Guitar", class: "null"}, {id: 3, name: "null", class: "null"} ]; searchVal = "null"; replaceVal = ""; _.each(arr, function(obj) { _.each(obj, function(value, key) { if(value === searchVal) { obj[key] = replaceVal; } }); }); console.log(arr); 
 <script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.7.0/underscore-min.js"></script> 

無需從JSON字符串解析后循環遍歷所有數據,而是可以為JSON.parse創建自定義解析器並節省一些時間。

 function customParser(key, value) { if (value.name === 'null') { value.name = ''; } if (value.class === 'null') { value.class = ''; } return value; } var jsonText = '[{"id":1,"name":"Piano","class":"Instrument"},{"id":2,"name":"Guitar","class":"null"},{"id":3,"name":"null","class":"null"}]', a = JSON.parse(jsonText, customParser); document.body.appendChild(document.createTextNode(JSON.stringify(a))); 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM