ImmutableJS Набор не сплющенный
У меня есть следующий код:
Immutable.Set(['valor1', 'valor2', 'valor2', 'valor3', ['valor4', 'valor5']]).flatten().toJS();
Это не работает, как ожидалось, но возвращает, как это было введено. Если я буду рассматривать его как список, он будет работать как положено:
Immutable.fromJS(['valor1', 'valor2', 'valor2', 'valor3', ['valor4', 'valor5']]).flatten().toJS(); // return flattened list
Что не так с функцией сглаживания при использовании с Set?
1 ответ
Решение
Что не так с функцией сглаживания при использовании с Set?
В этом нет ничего плохого. Кажется, у вас неправильное представление о том, как Set
а также flatten
Работа. Из документов:
Сглаживает только другие итерируемые, а не массивы или объекты.
Immutable.fromJS(...)
глубоко преобразует значение в карты и списки, поэтому внутренний массив преобразуется в Immutable.List
и вот почему это работает. Функции конструктора не конвертируются глубоко, поэтому набор содержит массив (который не сплющен).