Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在数组jQuery中查找值_Javascript_Jquery - Fatal编程技术网

Javascript 在数组jQuery中查找值

Javascript 在数组jQuery中查找值,javascript,jquery,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']; ?

所以我需要得到数组中保存特定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; ?>

推({
id:parseInt(),
受试者姓名:“,
课程类型:“,
num_视频:parseInt(),
主题标签:“
});
(我知道以这种方式混合PHP不是很好的做法,但请容忍我的问题)

这是我用来至少尝试和检查值是否在数组中的代码,但它每次都返回-1,当然_id的值在数组中

警报($.inArray(课程id,受试者id))

为什么会发生这种情况?

由于
id
subjects
数组中对象的键(因此不是
subjects
的属性),因此
$.inArray(课程id,subjects.id)
部分不起作用。试一试:

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

alert( inArrayById(subjects, course_id) )
$.inArray(course\u id,subjects.id)
部分不起作用,因为
id
subjects
数组中对象的键(因此不是
subjects
的属性)。试一试:

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

alert( inArrayById(subjects, course_id) )

这是Secators函数的一个变体,只是它在没有jQuery的情况下工作

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

    return false;
}
函数inaraybyid(数组,值){ 对于(var i=0;i这是Secators函数的一个变体,只是它在没有jQuery的情况下工作

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

    return false;
}
函数inaraybyid(数组,值){ 对于(var i=0;i
jQuery,所有JavaScript(除了)都在客户端工作;这意味着PHP不仅是“不好的实践”,而且与您提出的问题完全无关。请显示浏览器中显示的渲染标记/JavaScript(查看源代码)?嘿,David,当然可以:subject.push({id:64,subject\u name:“ABCs”,课程类型:1,num\u视频:37,num\u徽章:9,num\u测验:59,subject\u标签:“subject One”});另外,您建议在js中获取php数组值的最佳方法是什么?我知道我可以进行ajax调用等,但有没有一种方法可以让它们在页面加载时进行,而不必发出额外的请求?您可能可以使用PHP中可用的json_encode函数(如果启用了json扩展):jQuery,所有JavaScript(除了)都可以在客户端工作;这意味着PHP不仅是“不好的实践”,而且与您提出的问题完全无关。请显示浏览器中显示的渲染标记/JavaScript(查看源代码)?嘿,David,当然可以:subject.push({id:64,subject\u name:“ABCs”,课程类型:1,num\u视频:37,num\u徽章:9,num\u测验:59,subject\u标签:“subject One”});另外,您建议在js中获取php数组值的最佳方法是什么?我知道我可以进行ajax调用等,但是有没有一种方法可以让它们在页面加载时进行,而不必发出额外的请求?您可能可以使用PHP中可用的json_encode函数(如果启用了json扩展):好的,我来试一试。但是我必须使用each循环吗?哈哈,没什么,我只是不介意使用一个变量来重复使用。我想我可以重新使用你刚才写的函数?我试过了。似乎只返回false。您是否以数字而不是字符串的形式通过了课程id?您确定要查找的对象在阵列中吗?因为Secator的代码是正确的,这是一个非常基本的循环。我没有使用那个变量,而是直接传入了一个我知道在数组中的数字,仍然是假的。好吧,我来试一试。但是我必须使用each循环吗?哈哈,没什么,我只是不介意使用一个变量来重复使用。我想我可以重新使用你刚才写的函数?我试过了。似乎只返回false。您是否以数字而不是字符串的形式通过了课程id?您确定要查找的对象在阵列中吗?因为Secator的代码是正确的,这是一个非常基本的循环。我没有使用那个变量,而是直接传入了一个我知道在数组中的数字,但仍然是错误的。这似乎马上就能满足我的需要。谢谢你,伙计!这似乎马上就能满足我的需要。谢谢你,伙计!