【发布时间】:2014-10-21 05:11:05
【问题描述】:
我有一个选择,我可以在其中获取一些值作为数组,例如["1","2","3"]
在每次更改时,我都会运行以下代码来获取数组的结果,该数组连接到我从选择中获得的这些值
$('#event-courses-type').on('change',function(){
type = $('#event-courses-type').val();
console.log(type);
var var1 = ["4689 Leadership Award", "UKCC Level 1", "UKCC Level 2", "UKCC Level 3", "UKCC Level 4", "Old WHU Award", "None at present"];
var var2 = ["4689 Leadership Award", "GB-wide Level 1", "Old Level 1 (Pre January 2012)", "Level 2", "Level 3", "EHF", "FIH", "None at present"];
var var5 = ["D32/33", "A1 Assessor", "CTS", "IAPS", "PTLLS", "AVRA", "Umpire Educator Training", "Umpire Assessor Training"];
var var6 = ["D32/33", "A1 Assessor", "CTS", "IAPS", "PTLLS", "AVRA", "Umpire Educator Training", "Umpire Assessor Training"];
var results = [];
if ($.inArray("1",type) != -1) {
var results = $.merge(var1, results);
}
if ($.inArray("2",type) != -1) {
var results = $.merge(var2, results);
}
if ($.inArray("5",type) != -1) {
var results = $.merge(var5, results);
}
if ($.inArray("6",type) != -1) {
var results = $.merge(var6, results);
}
console.log(results);
)};
这是我的控制台日志,让您在选择 2 个选项和结果数组后查看类型数组:
["1", "2"] ------------------- add_event.php:802
["4689 Leadership Award", "GB-wide Level 1", "Old Level 1 (Pre January 2012)", "Level 2", "Level 3", "EHF", "FIH", "None at present", "4689 Leadership Award", "UKCC Level 1", "UKCC Level 2", "UKCC Level 3", "UKCC Level 4", "Old WHU Award", "None at present"]
如您所见,有两次“4689 领导奖”,我不希望这种情况发生。在 PHP 中,我使用 array_unique() 函数来消除这些重复值,但我不知道如何在 jQuery 中执行此操作。
【问题讨论】:
-
jQuery 没有可以做到这一点的方法。但是,使用简单的 for 循环或几种数组方法之一当然可以做到这一点。
-
我有一个问题,
type是一个值,所以它显然是一个字符串,但是你在$.inArray中将它用作一个数组,它是如何工作的? -
之所以有效,是因为字符串也有一个 indexOf 方法。该代码似乎没有意义,但它肯定会根据 indexOf 的结果做“某事”,这对于选择的每种类型都会有所不同。看起来好像 inArray ins 根本不需要,并且应该能够将字符串值与字符串进行比较。
-
@KevinB - 我测试了它,所以它知道它实际上可以作为 jQuery 调用
indexOf,我只是想知道 OP 是否知道他为什么在字符串上使用$.inArray,这很明显不是它的用途。
标签: javascript php jquery arrays