Javascript将“null”替换为“false”问题
当我试图将null替换为false时,它不会被替换。当您替换其他单词时,它会起作用,例如回答偶数:null有效,但null无效。有人能解释问题出在哪里吗?您正在转义\n换行符。您需要文本n: 另外,您正在使用JSON.stringify,为什么不也使用反向JSON.parse而不是jQuery呢 最后,为什么要解析这个呢?为什么不使用默认值访问答案:Javascript将“null”替换为“false”问题,javascript,jquery,Javascript,Jquery,当我试图将null替换为false时,它不会被替换。当您替换其他单词时,它会起作用,例如回答偶数:null有效,但null无效。有人能解释问题出在哪里吗?您正在转义\n换行符。您需要文本n: 另外,您正在使用JSON.stringify,为什么不也使用反向JSON.parse而不是jQuery呢 最后,为什么要解析这个呢?为什么不使用默认值访问答案: var x = [{ "answer": null, "answered": true, // many more fie
var x = [{
"answer": null,
"answered": true,
// many more fields here
"answers": {
"correct": null,
"response": null
}
}, {
"answer": null,
"answered": true,
// many more fields here
"answers": {
"correct": null,
"response": null
}
}];
var string = JSON.stringify(x).toString().replace(/null/g, "false");
var thing = jQuery.parseJSON(string);
console.log(thing);
最好避免使用JSON,但使用递归函数:
var ans = x.answer || false; // Returns false for any falsey value, including null
您是否尝试使用而不是null?您正在转义\n。这不应该是/null/g吗。话虽如此,这整件事似乎很奇怪。@RGraham:/null/g,:false shwoing JSON.parse意外字符error@amin:尝试不working@FrancisStalin我在你的代码中没有看到任何JSON.parse?还有,为什么现在替换为:false?假设$.parseJSON将调用JSON。parse@blgt为什么要麻烦呢?如果您想要浏览器支持,就不会使用JSON.stringify。我不得不在我的JSFIDLE中包含整个jQuery库,只是为了这个函数——也许OP浪费了同样的带宽?我并不反对,只是说OP的情况下,它在技术上是一样的?肯定乍一看很不错,但你有一些拼写错误。obj['k']应该是obj[k],也应该是obj[k]==false;应为obj[k]=false;:是的,我们可以这样做,我的问题是为什么replace函数不接受null替换,因为在“null”之前有一个“\”,您可以使用简单字符串作为模式:str.replacenull,false;
var ans = x.answer || false; // Returns false for any falsey value, including null
function convertNullToFalse(obj){
for(var k in obj){
if(obj[k] === null){
obj[k] = false;
continue;
}
if(typeof obj[k] === "object"){
convertNullToFalse(obj[k]);
}
}
}
convertNullToFalse(x);
console.log(x);