数组存储后取出来是空,帮忙看看

发布于 6 年前作者 eyang17413 次浏览最后编辑 6 年前来自 ask

一下这段代码有错吗,存进去后取出来是个空的

var bookread = [];

bookread[‘index’] = 2;

wx.setStorageSync(‘bookread’, bookread);

var bookread = wx.getStorageSync(‘bookread’);

console.log(bookread);

2 回复
tao15
tao151 楼6 年前

https://developers.weixin.qq.com/miniprogram/dev/api/data.html#wxsetstoragesynckeydata

看了下 wx.setStorageSync API ,此参数是直接支持Object的 ,猜测是此方法会自动JSON.stringify

你这个问题在于 当数组含非数字key(非下标),将被JSON.stringify(obj)去除

你代码中的  JSON.stringify(bookread)  就是 “[]”

lei99
lei992 楼4 年前

var bookread = {};

bookread[‘index’] = 2;

wx.setStorageSync(‘bookread’,JSON.stringify(bookread));

var bookread1 = wx.getStorageSync(‘bookread’);

console.log(JSON.parse(bookread1))