我有一个const
像这样的变量:
const result = _.map(daysOfWeek, function(value, key) {
if (value == true) {
value = ': Y';
}
else {
value = ': N';
}
return key + value;
});
console.log(result);
我的代码正在读取json变量daysOfWeek
,其格式如下:
"daysOfWeek": {
"sunday": false,
"monday": false,
"tuesday": false,
"wednesday": false,
"thursday": false,
"friday": false,
"saturday": false
},
如果值为false,则转换为“ N”,如果为true,则转换为“ Y”。
该console.log(result)
行逐字打印出以下行:
["sunday: Y","monday: Y","tuesday: Y","wednesday: Y","thursday: Y","friday: Y","saturday: Y"]
很好,但是我想删除大括号,双引号,并在逗号后添加一个空格,并且最好在可能的情况下将一周中每一天的开头都大写,以便最终结果如下所示:
Sunday: Y, Monday: Y, Tuesday: Y, Wednesday: Y, Thursday: Y, Friday: Y", Saturday: Y
我尝试过一些regex
表达式,例如
console.log(result.replace(/['"]+/g, ''));
和
alert(result);
alert(result.replace(/\"/g, ""));
但我似乎找不到找到所需格式的方法。
您不需要或不需要正则表达式。您从中得到的_.map
是一个字符串数组。要获得想要的结果:
在地图回调中,对进行大写key
。
用于.join(", ")
结果数组,将所有条目", "
作为分隔符连接到一个字符串中
如果愿意,还可以将if
/替换else
为条件运算符。就像是:
const result = _.map(daysOfWeek, function(value, key) {
return key.substring(0, 1).toUpperCase() +
key.substring(1) +
": " +
(value ? "Y" : "N");
}).join(", ");
或带有箭头功能和模板文字
const result = _.map(daysOfWeek, (value, key) =>
`${key.substring(0, 1).toUpperCase()}${key.substring(1)}: ${value ? "Y" : "N"}`
).join(", ");
或具有可迭代的解构,箭头功能和模板文字:
const result = _.map(daysOfWeek, (value, [first, ...rest]) =>
`${first.toUpperCase()}${rest.join("")}: ${value ? "Y" : "N"}`
).join(", ");
尽管这涉及一个临时数组。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句