2015-03-27 2 views
0

Быстрый вопрос, я хочу, чтобы вернуть объект с id: 123 из текущего массива объектов:Найти правильный объект с конкретным ID

[ 
    { 
    name: nancy, 
    id: 999 
    }, 
    { 
    name: kim, 
    id: 123 
    }, 
    { 
    name: tess, 
    id: 888 
    } 
] 

Любой идентификатор, как это сделать?

+0

@OddDev Нет, это не является дубликатом этого, потому что он хочет, чтобы найти элемент на основе свойства внутри объекта. – Barmar

+0

Действительно, НЕ дубликат. Просто примечание: этот объект недействителен, после каждого имени вы пропускаете некоторые запятые. – briosheje

+0

Извините, это просто пример. Фактически массив намного больше, поэтому ... Но я попробовал array.contains (obj), но он возвращает false, что не так. –

ответ

0

var list = [{ 
 
    name: 'nancy', 
 
    id: 999 
 
}, { 
 
    name: 'kim', 
 
    id: 123 
 
}, { 
 
    name: 'tess', 
 
    id: 888 
 
}] 
 

 
function findById(list, id) { 
 
    var index = list.map(function(element) { 
 
    return element.id 
 
    }).indexOf(id) 
 
    return list[index] 
 
} 
 

 
document.getElementById('result').innerHTML = JSON.stringify(findById(list, 123))
<pre> 
 
    <p>result: <code id="result"></code> 
 
</pre>

+0

Отлично работает, спасибо. –

0

Вы можете сделать это следующим образом:

var array = [{ 
 
    name: "nancy", 
 
    id: 999 
 
}, { 
 
    name: "kim", 
 
    id: 123 
 
}, { 
 
    name: "tess", 
 
    id: 888 
 
}]; 
 

 
function getObjectById(id) { 
 
    for (var i = 0; i < array.length; i++) { 
 
    if(array[i].id === id){ 
 
     return array[i]; 
 
    } 
 
    } 
 
}; 
 

 
alert(getObjectById(123));

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