我正在研究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.references, function(i, r) {
if (r.id exists in threadList) { //how do I do this more effectively?
feed_list.push(r.url);
}
});
如何找到列表中存在的元素?
答案 0 :(得分:1)
jQuery.inArray(r.id , threadList); //give 0 to any positive number if exist otherwise give -1
参考 inarray
答案 1 :(得分:1)
在现代浏览器中,您可以使用filter
上的[]
功能。
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: http://jsfiddle.net/7vTWj/
答案 2 :(得分:0)
使用indexOf()
:
if (threadList.indexOf(r.id) != -1)
如果您使用的是没有indexOf()
的旧浏览器,则可以使用jQuery.inArray()
:
if ($.inArray(r.id, threadList) != -1)
答案 3 :(得分:0)
试试这个:
$.each(json.references, function(i, r) {
if (threadlist.indexOf(r)!=-1) {
feed_list.push(r.url);
}
});
在java中,实际上你会为原始json创建一个JSONOBject,然后将json threadlist作为JSONArray,然后将其转换为实际数组来检查它。
答案 4 :(得分:0)
您只需使用
即可if ( $.inArray(r.id, threadList ) != 1 )