我正在尝试搜索我的对象上是否存在数据,并且此代码按预期工作,但显示结果时出现问题。它显示了我对象的所有索引。
如果在我的对象中找到结果,我将如何停止循环
$(document).ready(function(){
var myData = {
"animals":[{
"name":"cat"
},
{
"name":"dog"
},
{
"name":"horse"
},
{
"name":"bear"
}
]};
$('#send').click(function(){
var res = $('#animal').val();
$.each(myData.animals, function(i,j){
if(j.name == res){
console.log('found');
}
else{
console.log('not found');
}
});
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="myData">
<input type="text" id='animal'>
<button id='send'>find</button>
</div>
答案 0 :(得分:1)
$(document).ready(function() {
var myData = {
"animals": [
{
"name": "cat"
},
{
"name": "dog"
},
{
"name": "horse"
},
{
"name": "bear"
}
]
};
$('#send').on('click', function() {
var res = $('#animal').val();
var foundAnimal = myData.animals.find(function(animal){
return animal.name === res;
});
console.log('Animal Found: '+ !!foundAnimal);
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="myData">
<input type="text" id='animal'>
<button id='send'>find</button>
</div>
答案 1 :(得分:1)
除了使用jQuery之外,您还可以使用array#find
。
find()方法返回数组中第一个满足提供的测试函数的元素的值
const myData = {"animals":[{"name":"cat"},{"name":"dog"},{"name":"horse"},{"name":"bear"}]};
const res = "horse";
var result = myData['animals'].find((animal) => {
return animal['name'] === res;
});
console.log(result);
&#13;