[
{name:a,id:''},
{name:c,id:'d'},
{name:b,id:''},
{name:y,id:'d'},
{name:s,id:6},
{name:p,id:3},
]
后台传来的数据怎么把所有的空的替换成 '-'
[
{name:a,id:''},
{name:c,id:'d'},
{name:b,id:''},
{name:y,id:'d'},
{name:s,id:6},
{name:p,id:3},
]
后台传来的数据怎么把所有的空的替换成 '-'
可以显示在页面的时候替换,没必要改变这个数组。如果非要改变这个数组的话可以这样:
arr.forEach(v=>{
if(v.id == "") {
v.id = "-";
}
});
var arr = [{id:''}, {id:3}, {id:''}]
var newArr = arr.map(function (item) {
if (item.id === '') {
item.id = '-'
}
return item
})
console.log(newArr) // [{id:'-'}, {id:3}, {id:'-'}]
const arr = JSON.parse(data);
const newArr = arr.map(item => {
return {
...item,
id: item.id === '' ? '-' : item.id,
};
});
基本和第一位的一样,但第一位的写法有问题,会报错的;我这个就不会报错了
1、一般拿到后台的数据已经是JSON数据了,如果不是,可以使用JSON.parse()转换一下。
2、针对不同的数据格式我们的写法可以不一样,笔者提供的数据是[{},{},{}]格式,那么我们可以使用更加简单的方法:
data = [
{id: "", name: "Eric"},
{id: 12, name: "Jon"},
];
写法1:
data.forEach( item => item.id = item.id || "-" );
写法2(如果不想污染原数据):
let dataCopy = data.map( item => ( {...item, id: item.id || "-"} ) );
说明: () 代表一个表达式
var arr = [
{name:'a',id:''},
{name:'c',id:'d'},
{name:'b',id:''},
{name:'y',id:'d'},
{name:'s',id:6},
{name:'p',id:3},
];
var arr1 = JSON.parse(JSON.stringify(arr).replace(/""/g,'"-"'));
console.log(arr1);
刚回答过这种问题:https://segmentfault.com/q/10...
let data=[
{name:'a',id:''},
{name:'c',id:'d'},
{name:'b',id:''},
{name:'y',id:'d'},
{name:'s',id:6},
{name:'p',id:3},
].map(d=>Object.keys(d).map(k=>({[k]:(d[k]||'-')})).reduce((kd1,kd2)=>({...kd1,...kd2})))
8 回答4.9k 阅读✓ 已解决
6 回答3.6k 阅读✓ 已解决
5 回答2.9k 阅读✓ 已解决
5 回答6.5k 阅读✓ 已解决
4 回答2.3k 阅读✓ 已解决
5 回答1.3k 阅读✓ 已解决
4 回答2.8k 阅读✓ 已解决
写个正则 replace 替换就可以了吧? 你这个数据嵌的也不深,