使用jQuery查找List中存在的元素

时间:2013-08-27 08:39:41

标签: 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.references, function(i, r) {
    if (r.id exists in threadList) {  //how do I do this more effectively?
        feed_list.push(r.url);
    }
});

如何找到列表中存在的元素?

5 个答案:

答案 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 )