@n199a
Java

Почему свойство lenght для массива выдает неверное количество в JS?

Почему свойство 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
  • Вопрос задан
  • 134 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы