是否有更简单的方法来确定变量是否等于一系列值,例如:
if x === 5 || 6
Run Code Online (Sandbox Code Playgroud)
而不是像以下那样钝的东西:
if x === 5 || x === 6
Run Code Online (Sandbox Code Playgroud)
?
在其他帖子中搜索答案后,我觉得我必须问这个问题.我看了如何检查数组是否包含JavaScript中的对象? 以及查找项目是否在JavaScript数组中的最佳方法?并且无法让代码在那里工作.
我正在将一个html嵌入代码捕获到一个数组中,因此每个项目都是一行html代码.
例如:
i[0]='<param name=\"bgcolor\" value=\"#FFFFFF\" />'
i[1]='<param name=\"width" value=\"640\" />'
i[2]='<param name=\"height\" value=\"360\" />'
i[3]='more html code'
Run Code Online (Sandbox Code Playgroud)
我想搜索这个数组,找到"高度"这个词的行.
理想情况下,我想编写一个函数来返回出现'height'的项目的索引.
幸运的是,此数组中没有重复项,因此只有一次出现.
通过简单的对象搜索我得到'假'回报.
任何的想法?
我有一个简单的阵列与银行假期:
var bank_holidays = ['06/04/2012','09/04/2012','07/05/2012','04/06/2012','05/06/2012','27/08/2012','25/12/2012','26/12/2012','01/01/2013','29/03/2013','01/04/2013','06/05/2013','27/05/2013'];
Run Code Online (Sandbox Code Playgroud)
我想做一个简单的检查,看看某些日期是否作为该数组的一部分存在,我尝试过:
if('06/04/2012' in bank_holidays) { alert('LOL'); }
if(bank_holidays['06/04/2012'] !== undefined) { alert 'LOL'; }
Run Code Online (Sandbox Code Playgroud)
还有一些其他解决方案没有任何乐趣,我也尝试用一个简单的'x'替换所有转发的斜杠,以防出现问题.
非常感谢任何建议,谢谢!
(编辑)这是一个jsFiddle - http://jsfiddle.net/ENFWe/
可能重复:
在Javascript数组中测试值在JavaScript数组
中查找项目的最佳方法?
Javascript - array.contains(obj)
我通常在python中编程,但最近开始学习JavaScript.
在python中,这是一个完全有效的if语句:
list = [1,2,3,4]
x = 3
if x in list:
print "It's in the list!"
else:
print "It's not in the list!"
Run Code Online (Sandbox Code Playgroud)
但是我在Javascript中做了同样的事情.
如何在JavaScript中检查x是否在列表中?
就像是:
if (mystring == "a" || mystring == "b" || mystring =="c")
Run Code Online (Sandbox Code Playgroud)
我正在跳来做:
if (mystring in ("a", "b", "c"))
Run Code Online (Sandbox Code Playgroud)
可能吗?
我有一个变量:
var code = "de";
Run Code Online (Sandbox Code Playgroud)
我有一个数组:
var countryList = ["de","fr","it","es"];
Run Code Online (Sandbox Code Playgroud)
有人可以帮助我,因为我需要检查变量是否在countryList数组中 - 我的尝试在这里:
if (code instanceof countryList) {
alert('value is Array!');
}
else {
alert('Not an array');
}
Run Code Online (Sandbox Code Playgroud)
但是当它运行时我在console.log中收到以下错误:
TypeError:无效的'instanceof'操作数countryList
在我订阅的邮件列表中,两位相当知识渊博的(IMO)程序员正在讨论一些优化的代码,并说出以下内容:
在5 - 8年前发布的CPU上,向后循环迭代(例如
for (int i=x-1; i>=0; i--) {...})稍微快一些,因为与i零比较比将其与其他数字相比更有效.但是对于非常近期的CPU(例如,从2008年到2009年),推测性加载器逻辑使得如果for循环向前迭代(例如for (int i=0; i< x; i++) {...})它更好地工作.
我的问题是,这是真的吗?最近是否更改了CPU实现,这样前向循环迭代现在比后向迭代有优势?如果是这样,那有什么解释呢?即改变了什么?
(是的,我知道,过早的优化是所有邪恶的根源,在考虑微优化之前检查我的算法等等...大多数我只是好奇)
如何使用javascript测试不带引号的字符串"Orange"是否存在于下面的列表中?
var suggestionList = ["Apple", "Orange", "Kiwi"];
Run Code Online (Sandbox Code Playgroud) 我经常需要搜索包含对象的javascript数组.我想在数组中搜索具有属性匹配的对象.例如,在Person对象的数组中搜索person的id/key ==="ABC123"
使用$ .each方法使用jQuery可以很容易地完成它,这是我所确定的.你可以在jsFiddle中看到这里的例子.http://jsfiddle.net/johnpapa/EJAFG/
我想知道是否有其他人找到了更快和/或更好的方法来做到这一点?
var Person = function(code, name) {
this.code = code;
this.name = name;
};
var people = [
new Person("ABC123", "Tooth Fairy"),
new Person("DEF456", "Santa Claus"),
new Person("PIR000", "Jack Sparrow"),
new Person("XYZ987", "Easter Bunny")
];
var utils = {};
// Could create a utility function to do this
utils.inArray = function(searchFor, property) {
var retVal = -1;
$.each(this, function(index, item) {
if (item.hasOwnProperty(property)) {
if (item[property].toLowerCase() === searchFor.toLowerCase()) {
retVal = index;
return false;
} …Run Code Online (Sandbox Code Playgroud) 有没有更好的方法来检查多个项匹配if语句中的变量
我有3个if语句,我需要查看一个项是否匹配一个名为code的数组/变量.有很多项要与代码数组/变量进行比较,所以我不得不用|来复制每一个 它们之间.有没有更有效的方法或者我可以使用一次数组来检查代码是否等于数组中的任何项目?
这就是我所拥有的
onLabelShow: function(event, label, code){
if (code == "US-AL" | code == "US-AZ" | code == "US-CA" | code == "US-CT" | code == "US-FL" | code == "US-HI" | code == "US-ID" | code == "US-IL" | code == "US-IA" | code == "US-LA" | code == "US-ME" | code == "US-MD" | code == "US-MA" | code == "US-MO" | code == "US-NE" | code == "US-NV" | code == "US-NJ" | code == "US-NM" …Run Code Online (Sandbox Code Playgroud) javascript ×9
arrays ×4
jquery ×2
c ×1
comparison ×1
for-loop ×1
jvectormap ×1
optimization ×1
search ×1