2016-07-29 2 views
0

Как правильно сравнивать один объект с каждым объектом в таблице? Могу ли я сделать что-то вроде if(object == $.each(table)){ do something }Сравнение объектов в jQuery

Что такое самый простой способ сравнить объекты со столом?

+0

Что такое 'object'? Что такое 'таблица'? Что определяет равенство? Вы, конечно, не можете сравниться с вызовом '$ .each()', что не создало бы ничего значимого. – David

+0

Мне нужно получить случайную карточку, следующий чек - это та карта в моей руке. Если да, нарисуйте следующую карту, пока не получите новую. Есть ли способ сделать это в состоянии do-while? –

+0

Ну, вы можете перебрать известные карты и сравнить значения. – David

ответ

0

Если вы просто хотите, чтобы проверить, является ли данное значение существует в списке значений, вы можете цикл по этому списку:

var found = false; 
for (var i = 0; i < table.length; i++) { 
    if (object == table[i]) { 
     found = true; 
     break; // no need to keep looping 
    } 
} 
if (found === true) { 
    // the value was found in the collection 
} 

В зависимости от того, что object и table, Вы, возможно, должны сравнить конкретные свойства а не целые объекты. Например:

if (object.someKeyValue === table[i].someKeyValue) 

Определение «равенство» не всегда простое дело, и выходит за рамки простых значений скалярных вы в значительной степени ответственны за определение того, что делает любые два объекта «равно». Если нужно сравнить несколько полей, вы можете абстрактный его в функцию, которая внутренне сравнивает их:

if (areEqual(object, table[i])) 

(Вы могли бы дать вещи более значимые имена, конечно, это только в соответствии с надуманным примером в вопросе .)

В конечном счете, общая структура на самом деле будет одинаковой. Учитывая значение и набор значений, вы должны изучить, что находится в коллекции, и сравнить его содержимое со значением, чтобы найти (или не найти) соответствие.

Смежные вопросы