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)));
我有一组来自服务器的 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)));