我想将空值替换为字符串,并更改javascript数组中的小数点

我想将空值替换为字符串,并更改javascript数组中的小数点,javascript,Javascript,我试图在表中显示用户的数据。 但是我想把空值显示为“-”,并且只显示2个小数点。ex)2.18,1.29 我试着像这样使用forEach forEach((x)=>{ if(x.age===null){ x.age='-' } }) 但这段代码没有用,因为我总是需要放x.age或x.extrapoint, 所以我的想法是替换对象中的所有值 const user = [ { name: 'jenny', age: null, points: 56.9987,extraP

我试图在表中显示用户的数据。 但是我想把空值显示为“-”,并且只显示2个小数点。ex)2.18,1.29 我试着像这样使用forEach

forEach((x)=>{
 if(x.age===null){
    x.age='-'
 }
})
但这段代码没有用,因为我总是需要放x.age或x.extrapoint, 所以我的想法是替换对象中的所有值

const user = [
    { name: 'jenny', age: null, points: 56.9987,extraPoint:null },
    { name: 'david', age: 56, points: 56.324355,extraPoint:8 },
    { name: 'dude', age: null, points: 20.9987,extraPoint:null }
];
输出应该是


'jenny', '-', 56.9
'david', 56, 56.3,
'dude', '-',20.9
           

尝试按如下方式使用映射功能:

user=user.map((x)=>{
如果(!x.age){
x、 年龄='-'
}
返回x;
})

您可以通过检查值进行映射

const
replaceNull=v=>v==null?'-':v
user=[{name:'jenny',age:null,points:56.9987,extracpoint:null},{name:'david',age:56,points:56.324355,extracpoint:8},{name:'dude',age:null,points:20.9987,extracpoint:null},
结果=user.map(o=>[
replaceNull(o.name),
replaceNull(o.age),
o、 点===null?'-':o.points.toFixed(2),
]);
控制台日志(结果);

您可以尝试使用
map
功能,如下所示:

const用户=[
{姓名:'jenny',年龄:null,点数:56.9987,额外点数:null},
{姓名:'david',年龄:56,点数:56.324355,额外点数:8},
{姓名:'dude',年龄:null,点数:20.9987,额外点数:null}
];
var output=user.map(x=>({name:x.name,age:x.age | |'-',points:x.points.toFixed(2)});
控制台日志(输出)以下是我的方法:

const用户=[
{姓名:'jenny',年龄:null,点数:56.9987,额外点数:null},
{姓名:'david',年龄:56,点数:56.324355,额外点数:8},
{姓名:'dude',年龄:null,点数:20.9987,额外点数:null}
];
for(对象键的常量索引(用户))
console.log(`${user[ind].name},${user[ind].age | |'-'},${user[ind].points.toFixed(2)}`)用于动态枚举和循环对象属性,不需要按名称引用代码中的任何属性

const用户=[
{姓名:'jenny',年龄:null,点数:56.9987,额外点数:null},
{姓名:'david',年龄:56,点数:56.324355,额外点数:8},
{姓名:'dude',年龄:null,点数:20.9987,额外点数:null}
];

对于(var i=0;i我不想使用x.name或x.age,因为如果我得到更多数据,那么我需要像x.something、x.sometnew这样反复编码……那么有什么方法可以更改object的所有值吗?@jenny我已经更新了我的答案,您可以用我的第二个解决方案再试一次。