给定以下字符串:
var str = "[,,,1,2,,,3,4,,,,,,5,6]";
我想用空值替换所有“空”值。换句话说,我想要这个结果:
[null,null,null,1,2,null,null,3,4,null,null,null,null,null,5,6]”
这几乎有效,但它错过了第一个空值:
var str = "[,,,1,2,,,3,4,,,,,,5,6]";
str.split(',').map(function(x) { return x ? x : 'null' }).join(',')
// Gives [,null,null,1,2,null,null,3,4,null,null,null,null,null,5,6]
同样,我注意到如果我有尾随空值,它也会错过最后一个:
var str = "[,,,1,2,,,3,4,,,,,,5,6,,]";
str.split(',').map(function(x) { return x ? x : 'null' }).join(',')
// Gives [,null,null,1,2,null,null,3,4,null,null,null,null,null,5,6,null,]
有什么想法可以确保第一个和最后一个空值也被替换吗?
谢谢!
最佳答案
如前所述 - [ 和 ] 正在改变你的返回 - 这将删除它们并使用与现有函数相同的函数 - 但在缩短的字符串上并返回正确的值。
var str = "[,,,1,2,,,3,4,,,,,,5,6]";
let newStr = str.substring(1,str.length-1).split(',').map(function(x) { return x ? x : 'null' }).join(',')
console.log(newStr);
// Gives [null,null,null,1,2,null,null,3,4,null,null,null,null,null,5,6]
var str = "[,,,1,2,,,3,4,,,,,,5,6,,]";
newStr = str.substring(1,str.length-1).split(',').map(function(x) { return x ? x : 'null' }).join(',');
console.log(newStr);
// Gives null,null,null,1,2,null,null,3,4,null,null,null,null,null,5,6,null,null
关于javascript - 在 JavaScript 字符串中用空值替换空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48758819/