为什么我不能 JSON.stringify localStorage

Why cannot I JSON.stringify localStorage

我试过这个

JSON.stringify(localStorage, function(key, value) {
        console.log(key);
        return (key.split('.')[0] === 'SUWDdb') ? value : undefined;
})

它只有 returns 未定义,控制台只记录一个条目。 谁能给我一个理由和解决办法吗?

好吧,顶层没有任何东西满足您的条件,在这种情况下,您的函数返回未定义,这意味着下面没有任何东西被字符串化。你可能想要:

JSON.stringify(localStorage, function(key, value) {
    console.log(key);
    return (typeof value === 'object' || key.split('.')[0] === 'SUWDdb') ? value : undefined;
            ^^^^^^^^^^^^^^^^^^^^^^^^^
})

这将允许JSON.stringify在遇到对象时继续向下遍历。

如果您有 localstorage 并且想将其字符串化,请保持简单

JSON.stringify(本地存储) 其中 localstorage 是具有 localstorage 对象的变量

jsonString = JSON.stringify(值[ replacer [ space]])

value 要转换为 JSON 字符串的 JavaScript 对象。

replacer 改变字符串化过程行为的函数,或者用作白名单的 String 和 Number 对象数组,用于选择要包含在 JSON 字符串中的值对象的属性。如果此值为 null 或未提供,则对象的所有属性都包含在生成的 JSON 字符串中。

这是json.stringify函数的语法,不是回调函数