找出JavaScript数组是否包含对象的最简洁有效的方法是什么?
这是我知道的唯一方法:
function contains(a, obj) {
for (var i = 0; i < a.length; i++) {
if (a[i] === obj) {
return true;
}
}
return false;
}
Run Code Online (Sandbox Code Playgroud)
有没有更好,更简洁的方法来实现这一目标?
这与Stack Overflow问题密切相关问题在JavaScript数组中查找项目的最佳方法是什么?它使用的方法寻找数组中的对象indexOf.
javascript arrays algorithm time-complexity javascript-objects
我有一个购物车,在下拉菜单中显示产品选项,如果他们选择"是",我想在页面上显示其他一些字段.
问题是购物车还包括文本中的价格修饰符,每个产品可能不同.以下代码有效:
$(document).ready(function() {
$('select[id="Engraving"]').change(function() {
var str = $('select[id="Engraving"] option:selected').text();
if (str == "Yes (+ $6.95)") {
$('.engraving').show();
} else {
$('.engraving').hide();
}
});
});
Run Code Online (Sandbox Code Playgroud)
但是,我宁愿使用这样的东西,这是行不通的:
$(document).ready(function() {
$('select[id="Engraving"]').change(function() {
var str = $('select[id="Engraving"] option:selected').text();
if (str *= "Yes") {
$('.engraving').show();
} else {
$('.engraving').hide();
}
});
});
Run Code Online (Sandbox Code Playgroud)
如果所选选项包含单词"是",我只想执行操作,并忽略价格修饰符.
可能重复:
Javascript StartsWith
我知道我可以这样做^ =看看id是否以某个东西开头,我尝试使用它,但它没有用......基本上,我正在检索网址,我想要设置一个类对于以某种方式开始的路径名元素...
所以,
var pathname = window.location.pathname; //gives me /sub/1/train/yonks/459087
Run Code Online (Sandbox Code Playgroud)
我想确保对于以/ sub/1开头的每个路径,我可以为元素设置一个类......
if(pathname ^= '/sub/1') { //this didn't work...
...
Run Code Online (Sandbox Code Playgroud) 作为JavaScript的新手,我无法辨别何时使用这些.
任何人都可以帮我澄清一下吗?
我正在尝试检查我导入到我的应用程序中的字符串是否有一段文本.我知道如何用jQuery做到这一点,但我如何用直接的JavaScript做到这一点?
我有一个很长的条件语句,如下所示:
if(test.type == 'itema' || test.type == 'itemb' || test.type == 'itemc' || test.type == 'itemd'){
// do something.
}
Run Code Online (Sandbox Code Playgroud)
我想知道我是否可以将这个表达式/语句重构为更简洁的形式.
有关如何实现这一点的任何想法?
我正在处理JavaScript上的性能问题.所以我只想问:检查字符串是否包含另一个子字符串的最快方法是什么(我只需要布尔值)?您能否提出您的想法和示例代码段?
如何检查字符串是否包含另一个字符串而不是使用"=="来比较整个字符串?
问候
每个JS意见领袖都说扩展原生对象是一种不好的做法.但为什么?我们是否获得了性能?他们是否害怕有人以"错误的方式"做到这一点,并添加了可枚举的类型Object,几乎破坏了任何对象上的所有循环?
以TJ Holowaychuk的should.js为例.他增加了一个简单的getter来Object,一切工作正常(来源).
Object.defineProperty(Object.prototype, 'should', {
set: function(){},
get: function(){
return new Assertion(Object(this).valueOf());
},
configurable: true
});
Run Code Online (Sandbox Code Playgroud)
这真的很有道理.例如,可以扩展Array.
Array.defineProperty(Array.prototype, "remove", {
set: function(){},
get: function(){
return removeArrayElement.bind(this);
}
});
var arr = [0, 1, 2, 3, 4];
arr.remove(3);
Run Code Online (Sandbox Code Playgroud)
是否有任何反对扩展本机类型的论据?
我有一个子字符串:
substring = "please help me out"
Run Code Online (Sandbox Code Playgroud)
我有另一个字符串:
string = "please help me out so that I could solve this"
Run Code Online (Sandbox Code Playgroud)
如何查找是否substring是string使用Python 的子集?