пользовательское равенство объектов для гармоничного набора (es6)

У меня есть проблема, когда я генерирую много значений, и мне нужно убедиться, что я работаю только с уникальными. Поскольку я использую узел js с флагом --harmony и имею доступ к коллекциям гармонии, я решил, что опция может быть опцией.

Я ищу что-то похожее на следующий пример:

'use strict';

function Piece(x,y){
  this.x = x  
  this.y = y
}

function Board(width,height,pieces){
 this.width = width 
 this.height = height
 this.pieces = pieces
}

function generatePieces(){
 return [
  new Piece(0,0),
  new Piece(1,1) 
 ] 
}

//boardA and boardB are two different but equivalent boards
var boardA = new Board(10,10,generatePieces()) 
var boardB = new Board(10,10,generatePieces())

var boards = new Set()
boards.add(boardA)
boards.has(boardB) //return true

Теперь, чтобы достичь этого на другом языке, скажем, c #, я ожидал бы реализовать функцию equals, а также функцию генерации хеш-кода для Board и Piece. Поскольку я ожидаю, что равенство объектов по умолчанию будет основано на ссылках. Или, возможно, использовать специальный тип неизменяемого значения (скажем, case-класс в scala)

Есть ли способ определить равенство для моих объектов, чтобы решить мою проблему?

Ответы на вопрос(2)

Ваш ответ на вопрос