Function

Module: @ember/utils
import { isEqual } from '@ember/utils';
a
Object
first object to compare
b
Object
second object to compare
returns
Boolean

Compares two objects, returning true if they are equal.

1
2
3
4
import { isEqual } from '@ember/utils';

isEqual('hello', 'hello');                   // true
isEqual(1, 2);                               // false

isEqual is a more specific comparison than a triple equal comparison. It will call the isEqual instance method on the objects being compared, allowing finer control over when objects should be considered equal to each other.

1
2
3
4
5
6
7
8
9
10
11
import { isEqual } from '@ember/utils';
import EmberObject from '@ember/object';

let Person = EmberObject.extend({
  isEqual(other) { return this.ssn == other.ssn; }
});

let personA = Person.create({name: 'Muhammad Ali', ssn: '123-45-6789'});
let personB = Person.create({name: 'Cassius Clay', ssn: '123-45-6789'});

isEqual(personA, personB); // true

Due to the expense of array comparisons, collections will never be equal to each other even if each of their items are equal to each other.

1
2
3
import { isEqual } from '@ember/utils';

isEqual([4, 2], [4, 2]);                     // false