Object.entries и Object.values ​​пропускают последний элемент при использовании с 'import' - PullRequest
0 голосов
/ 02 мая 2018

Я столкнулся с довольно странной ошибкой, мне кажется, что мое понимание ожидаемого поведения 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"]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...