2016-08-11 2 views
0

У меня есть образец массива объектов, как показано ниже, я хочу, чтобы один из объектов в массиве имел имя Test.Как найти объект внутри массива с помощью клавиши подчеркивания

**Results: [ 
{ Name: "Test", 
    Age :21 
    ChildrenObj: 
}, 
{ Name: "Something else", 
    Age :21 
    ChildreObj 
}** 

Я использую следующий код, чтобы найти его, и он не возвращает мне правильные данные

var names= (_un.find(data.Results, function(item) { 
     return item.Name= "Test"; 
    })); 

любое направление будет высоко оценен.

+2

'вернуть item.Name == "Test"' Тест на равенство, не делать уступки. – Will

+0

@will, большое спасибо. Глупая ошибка, которую я сделал. То почему я получаю все данные assgined к ему. – kobe

+1

Еще лучше, используйте === (3 равно). Это также гарантирует, что они одного типа! 1 == "1" истинно, но 1 === "1" не – Kalman

ответ

1

Попробуйте это:

return item.Name == "Test"; 

Вы делаете задание не в comparisson.

Results: [ 
{ Name: "Test", 
    Age :21 
    ChildrenObj: 
}, 
{ Name: "Something else", 
    Age :21 
    ChildreObj 
} 
1

Вы можете использовать фильтр

results = [ 
{ Name : "Test", 
    Age : 21, 
    ChildrenObj : null 
}, 
{ Name : "Something else", 
    Age :21, 
    ChildrenObj : null 
}]; 
var names = results.filter(x => x.Name === "Test"); 
console.log(names); // [ { Name: 'Test', Age: 21, ChildrenObj: null } ] 
2

Вот рабочий пример, просто для удовольствия.

var Results = [{ 
 
    Name: "Test", 
 
    Age: 21, 
 
    ChildrenObj: {} 
 
}, { 
 
    Name: "Something else", 
 
    Age: 21, 
 
    ChildrenObj: {} 
 
}]; 
 

 
var names = (_.find(Results, function(item) { 
 
    return item.Name == "Test"; 
 
})); 
 

 
console.log(names);
<script src="//cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js"></script>

2

var data = [{ 
 
    Name: "Test", 
 
    Age :21 
 
}, 
 
{ Name: "Something else", 
 
    Age :22 
 
}]; 
 
    
 
    
 
console.log(_.findWhere(data, {Age: 22}));
<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js"></script>