如何实现对象属性值缺失时显示双下划线__?
解决对象空属性值替换为__的问题
你的代码存在几个关键错误,导致无法实现需求:
- 对象没有
length属性,for循环的条件i < obj.length永远不成立,循环根本不会执行 - 代码里的
values是未定义变量,导致属性访问逻辑完全错误 - 错误使用
return语句,一旦触发条件就直接终止函数,无法处理所有属性 - 条件判断
objects[values] === object[values] == ''逻辑混乱,不符合空值判断的需求
下面给出两种符合需求的实现方式:
方式一:返回处理后的属性值数组
如果只需要输出处理后的属性值列表,可以用Object.values配合map方法快速处理:
function findAddress(obj){ return Object.values(obj).map(val => val === '' ? '__' : val); } const output = {street : 10, house : '', society : 'Earth Perfect'}; const res = findAddress(output); console.log(res); // 输出: [10, '__', 'Earth Perfect']
方式二:返回保留键的处理后对象
如果需要保留原对象的键结构,同时替换空值:
function findAddress(obj){ const processedObj = {}; for(const key in obj){ processedObj[key] = obj[key] === '' ? '__' : obj[key]; } return processedObj; } const output = {street : 10, house : '', society : 'Earth Perfect'}; const res = findAddress(output); console.log(res); // 输出: {street: 10, house: '__', society: 'Earth Perfect'}
这两种方式都会遍历对象的所有属性值,将空字符串''替换为__,其他值保持不变,完全满足你的需求。
内容的提问来源于stack exchange,提问作者Suvo
相关产品推荐
相关产品推荐

