Javascript 通过数组查找项目
我试图找到一个巨大的数组(7000多个项目)的结果,由于某种原因,我以前用于另一个项目的脚本一直返回false,或者我可能忘记了什么 我试图对数组进行排序,并找到变量中列出的两项。代码如下: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);
$.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
?从你的控制台。日志(数据)检查你正在寻找的项目是否确实存在。