Javascript 使用jQuery查找列表中存在的元素
我基本上都在学习jQuery的基础知识,如果使用Java:p,它本可以很容易地完成Javascript 使用jQuery查找列表中存在的元素,javascript,jquery,list,Javascript,Jquery,List,我基本上都在学习jQuery的基础知识,如果使用Java:p,它本可以很容易地完成 var thread_list = []; var feed_list = []; $.each(json.messages, function(i, m) { if (m.replied_to_id == "") { alert(m.thread_id); thread_list.push(m.thread_id); } }); $.each(json.ref
var thread_list = [];
var feed_list = [];
$.each(json.messages, function(i, m) {
if (m.replied_to_id == "") {
alert(m.thread_id);
thread_list.push(m.thread_id);
}
});
$.each(json.references, function(i, r) {
if (r.id exists in threadList) { //how do I do this more effectively?
feed_list.push(r.url);
}
});
如何查找列表中存在的元素?使用indexOf()
:
如果您使用的旧浏览器没有indexOf()
,您可以使用jQuery.inArray()
:
参考尝试以下方法:
$.each(json.references, function(i, r) {
if (threadlist.indexOf(r)!=-1) {
feed_list.push(r.url);
}
});
在java中,实际上您将为原始json创建一个JSONOBject,然后将json线程列表作为JSONArray获取,然后将其转换为实际数组以进行检查 在现代浏览器中,您可以使用
[]
上的过滤器
功能
var thread_list = [{id:1},{id:2},{id:3}];
var feed_list = [];
function exists(arr,prop,val){
var threads = arr.filter(function(e){
return e[prop] == val;
});
return !!threads.length;
}
alert(exists(thread_list, "id", 4)); //returns false
alert(exists(thread_list, "id", 2)); //returns true
JS FIDDLE:您只需使用
if ( $.inArray(r.id, threadList ) != 1 )
threadList.indexOf(r.id)!=-1
jQuery.inArray()
也可能返回0
,如果出现情况,则将对其进行错误处理。因此,只需确保检查它,如-if(jQuery.inArray(r.id,threadList)!=-1)
no由0给出索引位置,在obse数组索引起始表单0中查看更多详细信息,查看元素是否是第一个元素,使用您的语句将返回0,在if
条件下将被视为false。你也可以参考相同的链接。他们也特别提到要对照-1进行检查永远不要忘记全能的(即;)
$.each(json.references, function(i, r) {
if (threadlist.indexOf(r)!=-1) {
feed_list.push(r.url);
}
});
var thread_list = [{id:1},{id:2},{id:3}];
var feed_list = [];
function exists(arr,prop,val){
var threads = arr.filter(function(e){
return e[prop] == val;
});
return !!threads.length;
}
alert(exists(thread_list, "id", 4)); //returns false
alert(exists(thread_list, "id", 2)); //returns true
if ( $.inArray(r.id, threadList ) != 1 )