Просто используйте объекты и ссылайтесь на них:
var array = [{v: 1}, {v: 2}, {v: 3}, {v: 1}];
array[0] = array[3];
array[0].v = 7;
console.log(array[3].v);
Чтобы получить немного более читаемый код, вы можете реализовать собственную карту:
class LinkMap extends Map {
get(k) {
return (super.get(k) || {}).value;
}
set(k, value) {
if(super.has(k)) {
super.get(k).value = value;
} else {
super.set(k, { value });
}
}
link(key, to) {
return super.set(to, super.get(key));
}
}
Так можно сделать:
const list = new LinkMap();
list.set(0, 1).set(1, 2).set(2, 3).link(0, 4);
list.set(4, 7);
console.log(list.get(0));