У меня есть массив объектов и вы хотите проверить, существует ли конкретный ключ/значение, в настоящее время я использую цикл for..in, но задавался вопросом, есть ли более короткий/лучший способ сделать это?Зацикливание объектов, чтобы проверить, существует ли определенная собственность, есть ли лучший способ, возможно, использовать подчеркивание?
JS
var models = [
{
"id": 1,
"name": "James"
},
{
"id": 2,
"name": "Ken"
},
{
"id": 3,
"name": "Jason"
}
];
function checkNameExists(name) {
for(var model in models) {
if (models[model].name === name) {
return true;
}
}
}
var nameExists = checkNameExists("Ken");
if(nameExists) {
console.log('Name exists');
}
JSFiddle: http://jsfiddle.net/kyllle/c21opmj8/1/
С помощью LoDash это может быть короче: '_. some (модели, 'name', 'Jason')'. Другой вариант для LoDash и Underscore: '_.some (models, {'name': 'Jason'})' –