我有JSON對象的數組從服務器:Underscorejs - 在JSON數組變化值
var a = [
{id:1,name:"Piano",class:"Instrument"},
{id:2,name:"Guitar",class:"null"},
{id:3,name:"null",class:"null"},.....]
使用underscorejs,是有可能通過這些對象循環,並與空字符串中的每個鍵改變每"null"
值""
?
我有JSON對象的數組從服務器:Underscorejs - 在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)));
是的,這是完全有可能的。它也可以在純javascript中。你嘗試過什麼嗎?你有什麼問題? – Xotic750
我試着用下劃線但沒有成功。我需要用空字符串來改變這個數組中的每個空值。 – Tomislav
你的代碼是什麼?它是如何不成功的? – Xotic750