首页 > 解决方案 > 为什么我的 stringify 不能在“if”语句中解析?

问题描述

const friends = ["john","peter","bob"];
localStorage.setItem("friends", JSON.stringify(friends));

const values = JSON.parse(localStorage.getItem("friends"));
console.log(values[2]);
// console.log(values[1]);
// console.log(values[2]);

let fruits;
console.log(fruits);

if (localStorage.getItem('fruits')) {
 fruits = JSON.parse(localStorage.getItem('fruits'));
}
else {
 fruits = [];
}

console.log(fruits);
fruits.push("apple");
fruits.push("orange");
localStorage.setItem("fruits", JSON.stringify(fruits));

为什么第一个数组会在 chrome 中正常运行,我可以从 dev.tools 清楚地检查控制台和应用程序,但是当我尝试创建一个空数组并推送不同的值 fx“apple”和“orange”时,我不能。我的控制台说错误出现在“if”语句中,但我不明白为什么。有什么想法吗?

标签: javascriptjsonlocal-storagestringify

解决方案


我相信答案就在引号中。JSON 语法非常严格,需要使用双引号。将 if 语句中的所有单引号更改为双引号,看看是否可以解决您的问题。


推荐阅读