Я столкнулся с довольно странной ошибкой, мне кажется, что мое понимание ожидаемого поведения Object.values
и Object.entries
может быть неполным. У меня есть объект, содержащий пять строк, которые я импортирую из файла. При ведении журнала я вижу, что объект импортирован правильно, все пять строк есть. Когда я использую Object.values
или Object.entries
, полученные массивы содержат только четыре элемента, последний из которых пропускается. Однако при использовании с деструктурированием все работает как положено, возвращаются все пять элементов. Можете ли вы взглянуть на приведенный ниже код и сообщить, что мне не хватает? Вы можете воспроизвести это на своем конце?
// reducers.js
const Auth = 'Auth';
const ErrorManager = 'ErrorManager';
const Loading = 'Loading';
const Posts = 'Posts';
const UserData = 'UserData';
export { Auth, ErrorManager, Loading, Posts, UserData };
// another file
import * as reducers from './reducers';
console.log('This is the object:')
console.log(JSON.stringify(reducers));
console.log("This array is incomplete:");
console.log(JSON.stringify(Object.values(reducers)));
console.log("This array is complete:");
console.log(JSON.stringify(Object.values({ ...reducers })));
Вывод журнала выглядит следующим образом:
This is the object:
{"Auth":"Auth","ErrorManager":"ErrorManager","Loading":"Loading","Posts":"Posts","UserData":"UserData"}
This array is incomplete:
["Auth","ErrorManager","Loading","Posts"]
This array is complete:
["Auth","ErrorManager","Loading","Posts","UserData"]
Если я не использую импорт, все работает как положено, см. Ниже:
const Auth = 'Auth';
const ErrorManager = 'ErrorManager';
const Loading = 'Loading';
const Posts = 'Posts';
const UserData = 'UserData';
const reducers = { Auth, ErrorManager, Loading, Posts, UserData };
console.log('This is the object:')
console.log(JSON.stringify(reducers));
console.log("This array is complete:");
console.log(JSON.stringify(Object.values(reducers)));
Выход журнала:
This is the object:
{"Auth":"Auth","ErrorManager":"ErrorManager","Loading":"Loading","Posts":"Posts","UserData":"UserData"}
This array is complete:
["Auth","ErrorManager","Loading","Posts","UserData"]