Я не мог глубоко сравнить 2 списка, используя простое сравнение объектов.Почему 2 immutable.js Списки сильно отличаются?
Рассмотрим следующий код:
import {fromJS} from 'immutable';
import {describe, it} from 'mocha';
import { expect } from 'chai';
const o = {a: 123};
const A = fromJS([o]);
const B = fromJS([]).push(fromJS(o));
describe('Check',() => {
it('should be deep equal',() => {
expect(A).to.deep.equal(B);
});
});
Почему Immutable.js коллекции действительно есть государство?
Я видел библиотеки вроде chai-immutable, но я хотел бы понять цель этого поведения?
Здесь я не понимаю вопроса - наверняка, это закончится как два _дифференциальных объекта с просто теми же данными в них. Я ожидал бы, что равенство потерпит неудачу. – vlaz
Immutable.js использует состояние, чтобы сделать его эффективным, так что когда вы добавляете что-то в неизменный список, ссылки будут разными, но на самом деле они не копируют все и не будут O (n) – juvian
@juvian, спасибо. Я мог бы удалить свой вопрос или принять ваш комментарий в качестве ответа. –