Попытка превратить массив записей в объект, но не работает, почему?

#javascript #arrays #reactjs #object

Вопрос:

Я пытаюсь превратить массив, в котором каждый элемент представляет собой массив, содержащий ключ и значение(например, записи), я пытаюсь преобразовать его обратно в элемент объекта с помощью метода Object.fromEntries(array) , но, похоже, возникла проблема.

Это ошибка, которую я получаю: TypeError: Object.fromEntries requires the first iterable parameter yields objects

Вот как я использую этот метод:

 const saved = JSON.parse(Object.fromEntries(localStorage.getItem(key)))
 

Значение локального хранилища, которое он должен получить:

 [["$typeof",null],["type",null],["key",null],["ref",null],["props",{"data":"a data containing collections of objects(fetched from an API)"}]
 

Поскольку это может быть полезно, я пытаюсь сохранить компонент react(да, я работаю над ReactJS) в локальном хранилище и вернуть его при необходимости.

Если вы не думаете, что эта часть кода не является причиной появления этой проблемы, пожалуйста, дайте мне знать.

Комментарии:

1. Сначала вам нужно выполнить синтаксический анализ, так как в localStorage хранятся только строки. const saved = Object.fromEntries(JSON.parse(localStorage.getItem(key))) Однако почему вы вообще превратили это в массив? Вы можете сделать localStorage.setItem(key, JSON.stringify(theObject)) и просто проанализировать это при загрузке данных.

2. У тебя все наоборот, const saved = Object.fromEntries(JSON.parse(localStorage.getItem(key)))

3. Чтобы уточнить: JSON.stringify используется для преобразования объекта в текст. Это называется сериализацией и используется для передачи объекта или его хранения. Чтобы вернуть фактический объект, вы вызываете JSON.parse() в строке, которую вы получили / загрузили.

4. Ну, я вызываю JSON.stringify при его хранении, так что разбор не вызовет никаких проблем, я думаю

5. Попытался изменить Object.fromEntries и JSON.parse, но не говорит, что null не является объектом