Q:

Como identificar instancias repetidas?

function Cell(){
  
  this.id = null;  
  this.name = "";
  
}
var x = [1,4,5,9,17,25,254,4];
var i = 0;
var l = x.length;
for(;i<l;i++) {
  
  var b = new Cell();
  b.id = x[i];

 
  console.log(b.id);
}

Tengo un constructor Cell(), un array llamado x(con identificadores para Cell), y un ciclo for que crea instancias del constructor con la propiedad id, asignada desde los valores del array x.
¿Como puedo comprobar si hay 'this.id' repetidas? ya que por cada propiedad 'this.id' quiero realizar una determinada funcion pero si la propiedad 'this.id' se repite(en este caso se repite la id 4) , la funcion solo se aplica a la ultima de sus repeticiones, osea al ultimo 4
El problema no puedo resolverlo modificando el array y siempre con el mismo nombre de variable
Algo similar a hacerlo con un array, pero ahora con las intancias
Ejemplo:

var a = [1,2,3,4,5,6,7,1,1]
var b = new Set()
a.reverse().forEach(x => b.add(x))
c = Array.from(b).reverse()

console.log(c);

A:

Al momento que seteas b.id = x[i] puedes chequear si es la última ocurrencia del valor x[i] dentro del array. 
Para resolver eso puedes utilizar Array.prototype.lastIndexOf(), ya que esta función retorna el índice de la última ocurrencia del valor, pudiendo luego utilizar ese índice para verificar si coincide con tu variable de iteración i.
Si coincide sabes que te encuentras posicionado en la última ocurrencia, por ende invocarías la función que mencionas.
Si no coincide puede significar que hay un valor posterior (index > i) o que hay un valor anterior y el id fue utilizado (index < i) .

function Cell(){
  this.id = null;  
  this.name = "";
}

var x = [1,4,5,9,17,25,254,4,88,17];
var i = 0;
var l = x.length;

for(;i<l;i++) {
  var b = new Cell();
  var index = x.lastIndexOf(x[i]);
  b.id = x[i];
  if(index !== i){
      console.log(b.id+ " Fue utilizado previamente o no es la ultima ocurrencia");
  }else{
      console.log(b.id+ " Es la ultima ocurrencia, invocar funcion..");
  }
 }
 

