【发布时间】:2016-07-13 12:32:58
【问题描述】:
感谢this post,其中接受的答案包括一个JS Fiddle,我能够验证我可以使用jQuery.grep() 过滤我的数据。但是,我无法使用服务器的输出来复制效果。我怀疑我在对象引用中忽略了一些明显的东西,但是作为 JavaScript 新手,我想我需要有人为我指出。
这是我的数据输出,一个对象数组:
[{"id":"3","src":"url1","category":"A"},
{"id":"32","src":"url2","category":"D"},
{"id":"38","src":"url3","category":"E"},
{"id":"39","src":"url4","category":"E"},
{"id":"42","src":"url5","category":"F"},
{"id":"49","src":"url6","category":"B"},
{"id":"44","src":"url7","category":"F"}]
我使用以下代码过滤类别 F 中的条目:
var obj = [{"id":"3","src":"url1","category":"A"},
{"id":"32","src":"url2","category":"D"},
{"id":"38","src":"url3","category":"E"},
{"id":"39","src":"url4","category":"E"},
{"id":"42","src":"url5","category":"F"},
{"id":"49","src":"url6","category":"B"},
{"id":"44","src":"url7","category":"F"}];
obj = $.grep(obj, function(element, index){
return element.category == "F" // keep elements in category F
});
console.log(obj);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
这是我对服务器的 Ajax 调用:
var obj = $.post( url, {term: term }, function(data){
}, 'json'
);
在执行console.log(obj); 时,我发现我的数据输出为控制台中的对象,但似乎无法访问它。为了使 grep 函数工作,我需要以对象数组的形式访问输出。它就在那里,等着我,但我该如何引用它呢?
【问题讨论】:
-
grep的结果是一个对象数组。 MDN Array -
在进行字符串比较时始终使用三等号 (===)。
-
@Samuel,为什么 === 而不是 ==?两者似乎都适用于我的情况
-
这是一种最佳实践,其中 === 也进行类型检查,因此更可预测。以下是更多信息:stackoverflow.com/questions/359494/….
标签: javascript jquery json object grep