Ho un problema in cui sto generando molti valori e ho bisogno di assicurarmi di lavorare solo con quelli unici. Poiché sto usando il nodo js, con il flag --harmony e ho accesso alle raccolte di armoniche, ho deciso che un Set potrebbe essere un'opzione.uguaglianza degli oggetti definiti dall'utente per un insieme in armonia (es6)
Quello che sto cercando è qualcosa di simile al seguente esempio:
'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
Ora normalmente per raggiungere questo obiettivo in un'altra lingua, ad esempio C#, mi sarei aspettato di dover implementare una funzione uguale, come pure come funzione di generazione di codice hash per Board e Piece. Dal momento che mi aspetto che l'uguaglianza degli oggetti di default sia basata su riferimenti. O magari usare un tipo di valore immutabile speciale (diciamo una classe di case in scala)
C'è un mezzo per definire l'uguaglianza per i miei oggetti per risolvere il mio problema?
grazie, ho avuto la sensazione che fosse così. Il link alla discussione è molto utile. –