在数组jQuery中查找值

时间:2012-07-05 11:45:23

标签: javascript jquery

所以我需要获取持有特定id的数组部分,以便我可以使用其中的其他变量。

这是我当前创建数组的代码:

<?php foreach ($list_subjects as $subject): ?>
    subjects.push({
        id: parseInt(<?php echo $subject['subject_id']; ?>),
        subject_name: "<?php echo $subject['subject_name']; ?>",
        course_type: "<?php echo $subject['course_type']; ?>",
        num_videos: parseInt(<?php echo $subject['num_videos']; ?>),
        subject_tag: "<?php echo $subject['subject_tags']; ?>"
    });
<?php endforeach; ?>

(我知道以这种方式混合PHP并不是一个好习惯,但请耐心等待这个问题)

这是我用来至少尝试检查数值是否在数组中的代码,但每次都返回-1,并且数组中的course_id是值。

  

alert($。inArray(course_id,subjects.id));

为什么会这样?

2 个答案:

答案 0 :(得分:1)

$.inArray(course_id, subjects.id)部分不起作用,因为idsubjects数组中对象的键(因此不是subjects的属性)。试试这样:

function inArrayById(array, value)
    $.each(array, function(i, element) {
        if(element.id === value){
            return true;
        }
    });
    return false;
}

alert( inArrayById(subjects, course_id) )

答案 1 :(得分:0)

这是Secators函数的变体,除了它没有jQuery。

function inArrayById(array, value) {
    for(var i = 0; i < array.length; i++) {
        if(array[i]["id"] === value) return true;
    }

    return false;
}