我有一个声明如下的数组:
array = [];
并具有如下所示的值 -
....
ChIJOaegwbTHwoARg7zN_9nq5Uc:"ChIJOaegwbTHwoARg7zN_9nq5Uc"
ChIJXTwCdefHwoAR9Jr4-le12q4:"ChIJXTwCdefHwoAR9Jr4-le12q4"
....
当我执行console.log(array);
时会打印这些值当我尝试执行JSON.stringify(数组)时,它似乎不起作用。我想使用localStorage.setItem()将此数组存储在localStorage中。
我在浏览器控制台中尝试了一个例子:
var arr=[]
arr[0] = 1
arr[1] = 2
JSON.stringify(arr);
上面的例子非常合适。
请提供您的意见,我已经坚持了几个小时。
答案 0 :(得分:1)
您正在尝试在数组中分配值,如对象; index只能是o,1,2等,而不是你用过的字符串。如果必须这样做,请创建一个对象数组
答案 1 :(得分:1)
问题是您正在尝试将数组索引设置为字符串'ChIJOaegwbTHwoARg7zN_9nq5Uc'
和'ChIJXTwCdefHwoAR9Jr4-le12q4'
,尽管浏览器似乎在控制台中打印它,但数组仅将整数键视为有效索引,因此,如果您尝试打印array.length
,则会打印0
,因此JSON.stringify(array)
等操作不会返回任何内容
var array = [];
array['ChIJOaegwbTHwoARg7zN_9nq5Uc'] = "ChIJOaegwbTHwoARg7zN_9nq5Uc";
array['ChIJXTwCdefHwoAR9Jr4-le12q4'] = "ChIJXTwCdefHwoAR9Jr4-le12q4";
console.log(array);
console.log(array.length)

您需要的不是数组而是对象
var obj = {};
obj['ChIJOaegwbTHwoARg7zN_9nq5Uc'] = "ChIJOaegwbTHwoARg7zN_9nq5Uc";
obj['ChIJXTwCdefHwoAR9Jr4-le12q4'] = "ChIJXTwCdefHwoAR9Jr4-le12q4";
console.log(obj);
console.log(JSON.stringify(obj))

答案 2 :(得分:0)
这不是一个数组,而是一个对象。对象不像数组那样进行字符串化。
基本上:
String = 'This is a string'
Array = [
'This is a string',
'And so is this'
]
Object = {
firstString : 'This is a string',
secondString : 'And so is this.'
}
答案 3 :(得分:0)
这适用于我a plunker。
let array = [];
array.push({"ChIJOaegwbTHwoARg7zN_9nq5Uc":"ChIJOaegwbTHwoARg7zN_9nq5Uc"});
array.push({"ChIJXTwCdefHwoAR9Jr4-le12q4":"ChIJXTwCdefHwoAR9Jr4-le12q4"});
console.log(JSON.stringify(array));