Показать сообщение отдельно
  #21 (permalink)  
Старый 31.12.2015, 01:31
Аспирант
Посмотреть профиль Найти все сообщения от callbackhell
 
Регистрация: 29.12.2015
Сообщений: 58

Сообщение от рони
причём тут прототипы не понимаю
А кто сказал, что они тут причем? Перечитайте ветку, Вы вообще о чем то о своем...

Но вообще, то что Вы показываете -- это говнопаттерн. Объекты нельзя использовать в качестве хешей, если приходится это делать -- это верный признак говноархитектуры. Но это ладно
Сообщение от рони
причём тут прототипы не понимаю
Вообще то они к разговору не имеет никакого отношения, почему они вам всюду мерещаться, я не знаю, но в вашем случае они и вправду, как-бы, причем
var arr = []
function find(arr, obj) {
     return arr.every(function(el) {
         return el.a != obj.a || el.b != obj.b     
}) } 
var obj = Object.create({a: 1, b: 1}); obj.c = 3
find(arr, obj) && arr.push(obj);
obj = {a: 2, b: 1};
find(arr, obj) && arr.push(obj);
obj = {a: 1, b: 1};
find(arr, obj) && arr.push(obj);
obj = {a: 1, b: 1};
find(arr, obj) && arr.push(obj);
obj = {a: 2, b: 2};
find(arr, obj) && arr.push(obj);
alert(JSON.stringify(arr))

///[{"c":3},{"a":2,"b":1},{"a":2,"b":2}]
Ответить с цитированием