Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/384.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 通过数组查找项目_Javascript_Jquery - Fatal编程技术网

Javascript 通过数组查找项目

Javascript 通过数组查找项目,javascript,jquery,Javascript,Jquery,我试图找到一个巨大的数组(7000多个项目)的结果,由于某种原因,我以前用于另一个项目的脚本一直返回false,或者我可能忘记了什么 我试图对数组进行排序,并找到变量中列出的两项。代码如下: $.getJSON('proxy.php?url=http://api.bukget.org/api/plugins', function(data){ var list = ['essentials', 'worldguard']; //console.log(data);

我试图找到一个巨大的数组(7000多个项目)的结果,由于某种原因,我以前用于另一个项目的脚本一直返回false,或者我可能忘记了什么

我试图对数组进行排序,并找到变量中列出的两项。代码如下:

$.getJSON('proxy.php?url=http://api.bukget.org/api/plugins', function(data){
        var list = ['essentials', 'worldguard'];
        //console.log(data);
        $.each(data, function(i, plugin){
            if (plugin === list) {
                console.log('found!');
                 } else {
                    return false;
                }
        });

    });
我的代码遗漏了什么

使用代理:

<?php

    if (!isset($_GET['url'])) die();
    $url =  urldecode($_GET['url']);
    $url = 'http://' . str_replace('http://', '', $url); // Avoid accessing the file system
    echo file_get_contents($url);
?>

返回false
将突破
$。如果
插件!==在第一次迭代中列出

编辑:如果要查找
列表中的任何项目,并停止匹配,请执行以下操作:

$.getJSON('proxy.php?url=http://api.bukget.org/api/plugins', function(data) {
    var list = ['essentials', 'worldguard'],
        found;
    $.each(data, function(i, plugin) {
        if (~$.inArray(plugin, list)) {
            found = true;
            return false;
        }
    });
    if (found) {
        console.log('found!');
    } else {
        console.log('not found!');
    }
});

如果要同时查找这两个选项,请执行以下操作:

$.getJSON('proxy.php?url=http://api.bukget.org/api/plugins', function(data) {
    var list = ['essentials', 'worldguard'],
        found = 0;
    $.each(data, function(i, plugin) {
        if (~$.inArray(plugin, list)) {
            found++;
        }
    });
    if (found === list.length) {
        console.log('found all of them!');
    } else {
        console.log(found + ' items found.');
    }
});

返回false
将从
$中中断。如果
插件在第一次迭代中列出

编辑:如果要查找
列表中的任何项目,并停止匹配,请执行以下操作:

$.getJSON('proxy.php?url=http://api.bukget.org/api/plugins', function(data) {
    var list = ['essentials', 'worldguard'],
        found;
    $.each(data, function(i, plugin) {
        if (~$.inArray(plugin, list)) {
            found = true;
            return false;
        }
    });
    if (found) {
        console.log('found!');
    } else {
        console.log('not found!');
    }
});

如果要同时查找这两个选项,请执行以下操作:

$.getJSON('proxy.php?url=http://api.bukget.org/api/plugins', function(data) {
    var list = ['essentials', 'worldguard'],
        found = 0;
    $.each(data, function(i, plugin) {
        if (~$.inArray(plugin, list)) {
            found++;
        }
    });
    if (found === list.length) {
        console.log('found all of them!');
    } else {
        console.log(found + ' items found.');
    }
});

除了另一个答案外,数组文本无法可靠地与
=
进行比较。使用
.indexOf

if ( list.indexOf(plugin) > -1 ) {

}

除了另一个答案外,数组文本无法可靠地与
=
进行比较。使用
.indexOf

if ( list.indexOf(plugin) > -1 ) {

}

plugin
是数组还是字符串?如果是数组,则在Javascript中不提供数组比较(示例:)

如果
plugin
是一个字符串,那么以下是了解它是否在
列表中的方法:

if (list.indexOf(plugin) > -1 ) {
    // Found
}

如果
plugin
是一个数组,那么您必须编写一个进行深度对象比较的函数。

plugin
是数组还是字符串?如果是数组,则在Javascript中不提供数组比较(示例:)

如果
plugin
是一个字符串,那么以下是了解它是否在
列表中的方法:

if (list.indexOf(plugin) > -1 ) {
    // Found
}

如果
plugin
是一个数组,那么你必须编写一个函数来进行深入的对象比较。

删除整个
else
块。你能发布
数据的结构吗?当您使用
$时,它似乎是一个对象。getJSON
,但您说它是一个数组,所以有点混乱。请删除整个
else
块。您可以发布
数据的结构吗?当您使用
$.getJSON
时,它似乎是一个对象,但您说它是一个数组,所以有点混淆。
plugin
是JSON对象的属性值。你怎么把这个应用到OP的案子上?他是对的。那是一根绳子。Fab和你的是对的,谢谢<代码>插件
是JSON对象的属性值。你怎么把这个应用到OP的案子上?他是对的。那是一根绳子。Fab和你的是对的,谢谢!我正在使用您的精确脚本(复制意大利面),它返回not found!。粘贴的
数据
来自
$.getJSON
?从您的控制台。日志(数据)检查您正在查找的项目是否确实存在。我正在使用您的精确脚本(复制意大利面),它返回not found!。粘贴的
数据
来自
$.getJSON
?从你的控制台。日志(数据)检查你正在寻找的项目是否确实存在。