我有一个数组和数组看起来像这样,我想知道数组中包含的是NewsType =“Int”。
数组是NewsTypeArray。
当我在firebug.array中调试时看起来像这样,
0 Object { NewsType="Local"}
1 Object { NewsType="Int"}
var InternationalNewsfound = $.inArray("Int", NewsTypeArray) > -1;
但是 InternationalNewsfound让我觉得虚假。
答案 0 :(得分:4)
使用带有jquery .grep()
的过滤器,
var NewsTypeArray = [{"NewsType": "Local"}, {"NewsType": "Int"}];
var InternationalNewsfound = $.grep(NewsTypeArray, function(obj) {
return obj.NewsType === "Int";
}).length > 0;
console.log(InternationalNewsfound);
<script src="https://code.jquery.com/jquery-1.11.3.js"></script>
*注意:虽然只是.length
可以帮助您检查真实性,但您仍然可以使用.length > 0
作为标记。
答案 1 :(得分:2)
您正在搜索一组对象,但您的搜索值是一个字符串("Int")
。inArray
对您没有帮助。
ES5的Array#some
会(如果您需要支持IE8等过时的浏览器,它可以填充):
var NewsTypeArray = [{"NewsType": "Local"}, {"NewsType": "Int"}];
var InternationalNewsfound = NewsTypeArray.some(function(e) {
return e.NewsType === "Int";
});
console.log(InternationalNewsfound);
Array#some
为数组中的每个条目调用一次回调。如果回调返回真值,Array#some
会停止并返回true
。如果Array#some
用尽了回调从未返回真值的条目,则返回false
。