Emm*_*myS 1 javascript arrays jquery
我有一个看起来像这样的javascript数组:
myFields = [
["fb-method","drop",false,"How did you order?"],
["fb-date","calendar",false,""],
["fb-time","drop",false,""],
["fb-location","drop",false,""],
["fb-amount","text default",false,""],
["fb-share","drop",false,""],
["fb-msg","textarea",true,""],
["next-btn","button",true,""]
]
Run Code Online (Sandbox Code Playgroud)
我能够遍历数组并处理这样的特定位:
len = fields.length;
//first check to make sure required fields are filled in
for(i=0; i<len; i++) {
a = fields[i];
if(a[0] != "fb-method") {
// do stuff
}
}
Run Code Online (Sandbox Code Playgroud)
如果特定元素不是数组的一部分,我需要能够(在循环外)做某事,特别是如下所示:
["fb-location","drop",false,""]
Run Code Online (Sandbox Code Playgroud)
我尝试过使用jQuery的.inArray函数,但即使返回false也会返回true.请看这里的小提琴.
最好的方法是什么?jQuery或标准的js很好.
$.inArray不返回bool,它返回索引(如果不存在匹配,则返回-1).你会想要这个陈述(基于你的jsfiddle):
if(jQuery.inArray("fb-location", tmp) > -1) {
alert("it exists");
}
else {
alert("it doesn't exist");
}
Run Code Online (Sandbox Code Playgroud)
演示:http: //jsfiddle.net/azWLC/2/
更新:
正如评论中所提到的,这只是解决方案的一半,因为数组是多维的.我建议先使用$.map():
var tmp = [
["fb-method","drop",false,"How did you order?"],
["fb-date","calendar",false,""],
["fb-time","drop",false,""],
["fb-amount","text default",false,""],
["fb-share","drop",false,""],
["fb-msg","textarea",true,""],
["next-btn","button",true,""]
];
var values = $.map(tmp, function(n, i){
return n[0];
});
if(jQuery.inArray("fb-location", values) > -1) {
alert("it exists");
}
else {
alert("it doesn't exist");
}
Run Code Online (Sandbox Code Playgroud)
演示:http: //jsfiddle.net/azWLC/4/
| 归档时间: |
|
| 查看次数: |
107 次 |
| 最近记录: |