如何使用 Jquery 在数组中查找对象值?

Posted

技术标签:

【中文标题】如何使用 Jquery 在数组中查找对象值?【英文标题】:How to find object value in array with Jquery? 【发布时间】:2011-11-07 22:00:24 【问题描述】:

如何在数组中搜索以查看值是否存在?

var fruitVarietyChecked = $('input[name=fruitVariety]:checked').val();

$.getJSON('getdata.php', fruitVariety: fruitVarietyChecked, function(fruittype) 

            var html = '';
            $.each(fruittype, function(index, array) 

                alert( "Key: " + index + ", Value: " + array['fruittype'] );
                //shows array - Key: 0 , Value: special item

                //this is where the problem is
                if ($(array.has("special item")))

                    $("p").text("special item" + " found at " + index);
                    return false;
                    

                html = html + '<label><input type="radio" name="fruitType" value="' + array['fruittype'] + '" />' + array['fruittype'] + '</label> ';
            );
            $('#fruittype').html(html);
            );

到目前为止,我尝试了 .is.has.getdata.inarray,但它让我无处可去。

JSON 调用返回:["fruittype":"special item","fruittype":"blue","fruittype":"red"]

【问题讨论】:

你的阵列是什么样子的? 【参考方案1】:

我认为这是一个语法错误: 更改if ($(array.has("special item")))

if ($.inArray("special item", array) > -1) 

编辑:

如果数组有复杂的对象,那么你不能使用inArray,你可以使用jQuery过滤器来实现同样的效果,例如:

    var filtered = $(array).filter(function()
        return this.fruittype == "special item";
    );
    if(filtered.length > 0)

【讨论】:

虽然答案在这里显示了两次,但这似乎不起作用。 你能发布 JSON 调用返回的数组吗? JSON 调用返回:["fruittype":"special item","fruittype":"blue","fruittype":"red"] @Jroen:更新帖子请检查。【参考方案2】:
if ( $.inArray(valueToMatch, theArray) > -1 ) 

【讨论】:

以上是关于如何使用 Jquery 在数组中查找对象值?的主要内容,如果未能解决你的问题,请参考以下文章

jquery如何输出数组中某个特定值

如何在对象数组中查找和更新值?

如何在 JavaScript 中的对象数组中查找值?

如何在对象数组中查找具有特定名称的值

javascript 如何在javascript数组中按键和值查找对象的索引

如何从 jquery 或 javascript 中的两个不同数组中查找唯一记录?