【JS】js json数组怎么替换空值为 ‘ - ’

[

{name:a,id:''},

{name:c,id:'d'},

{name:b,id:''},

{name:y,id:'d'},

{name:s,id:6},

{name:p,id:3},

]

后台传来的数据怎么把所有的空的替换成 '-'

回答

写个正则 replace 替换就可以了吧? 你这个数据嵌的也不深,

let arr = JSON.parse(data)
arr = arr.map(e=>{...e,id: e.id === '' ? '-': e.id})

可以显示在页面的时候替换,没必要改变这个数组。如果非要改变这个数组的话可以这样:

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})))

【JS】js json数组怎么替换空值为 ‘ - ’

以上是 【JS】js json数组怎么替换空值为 ‘ - ’ 的全部内容, 来源链接: utcz.com/a/84878.html

回到顶部