Почему свойство
lenght
для массива выдает неверное количество в
JS
?
Имеется такой JSON файл, который после парсинга превращается в массив, содержащий 2 объекта:
[
{
"id": 1,
"image": "images/gifts/1.png",
"name": "Gift 1",
"description": "Description fo gift 1",
"creationDate" : "2021-01-27T00:10:00Z",
"tag" : "",
"duration": "1 year",
"price": "$100"
},
{
"id": 2,
"image": "images/gifts/2.png",
"name": "Gift 2",
"description": "Description fo gift 2",
"creationDate" : "2021-01-27T00:09:00Z",
"tag" : "",
"duration": "2 year",
"price": "$200"
},
Теперь помещаю полученный массив в
localStorage
:
let data = JSON.parse(text);
window.localStorage.setItem('key', data);
Почему, при ожидаемом результате 2, я получаю 31:
let data = JSON.parse(text);
console.log('length:' + data.length); // 2
window.localStorage.setItem('key', data);
let key = localStorage.getItem('key');
console.log(key); // [object Object],[object Object]
console.log(key.length); // 31
console.log(Object.keys(key).length); //31