找出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
在脚本标签中是否有必要使用CDATA标签,如果是这样的话?
换句话说,何时何地:
<script type="text/javascript">
//<![CDATA[
...code...
//]]>
</script>
Run Code Online (Sandbox Code Playgroud)
比这更好:
<script type="text/javascript">
...code...
</script>
Run Code Online (Sandbox Code Playgroud) 来自Mozilla开发者网络:
[1,4,9].map(Math.sqrt)
Run Code Online (Sandbox Code Playgroud)
会产生:
[1,2,3]
Run Code Online (Sandbox Code Playgroud)
为什么这样做:
['1','2','3'].map(parseInt)
Run Code Online (Sandbox Code Playgroud)
屈服于此:
[1, NaN, NaN]
Run Code Online (Sandbox Code Playgroud)
我已经在Firefox 3.0.1和Chrome 0.3中进行了测试,只是作为免责声明,我知道这不是跨浏览器功能(没有IE).
我发现以下内容将达到预期的效果.但是,它仍然没有解释错误的行为parseInt.
['1','2','3'].map(function(i){return +i;}) // returns [1,2,3]
Run Code Online (Sandbox Code Playgroud) 返回一个重复任意次数的字符串的最佳或最简洁的方法是什么?
以下是我迄今为止的最佳镜头:
function repeat(s, n){
var a = [];
while(a.length < n){
a.push(s);
}
return a.join('');
}
Run Code Online (Sandbox Code Playgroud) 如上所述,HTML中的单引号何时变得如此受欢迎?和Jquery在属性中嵌入了引用, HTML上的Wikipedia条目说明如下:
单引号字符(')在用于引用属性值时,当它出现在属性值本身内时,还必须转义为
'或'(不应转义为'XHTML文档除外).
为什么不'应该使用?另外,"安全使用而不是"?
以下代码在Chrome或IE中正确显示(图像宽度为200px).在Firefox和Opera中,max-width样式完全被忽略.为什么会发生这种情况并且有好的解决方法?另外,哪种方式符合大多数标准?
针对这种特殊情况的一种可能的解决方法是设置max-width为200px.然而,这是一个相当人为的例子.我正在寻找一个可变宽度容器的策略.
<!doctype html>
<html>
<head>
<style>
div { display: table-cell; padding: 15px; width: 200px; }
div img { max-width: 100%; }
</style>
</head>
<body>
<div>
<img src="http://farm4.static.flickr.com/3352/4644534211_b9c887b979.jpg" />
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec facilisis
ante, facilisis posuere ligula feugiat ut. Fusce hendrerit vehicula congue.
at ligula dolor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.
leo metus, aliquam eget convallis eget, molestie at massa.
</p>
</div>
</body> …Run Code Online (Sandbox Code Playgroud) 我已经使用了VIM 10年以上,但从未真正使用过VIM脚本(总是主观地认为这是VIM弱于Emacs的一个领域).
最近,实现"在VIM脚本中,我可以执行正常模式命令"让我的思绪变成了"a-ha",突然开始意识到为什么VIM脚本的部分就是这样.
normal ma10jd'a20kp
Run Code Online (Sandbox Code Playgroud)
比它更优雅
Marker m = currentLocation();
advanceLines(10);
Buffer b = delete(currentLocation(), m);
advanceLines(-20);
insertBuffer(b);
Run Code Online (Sandbox Code Playgroud)
现在的问题是 - 学习vim脚本的好资源是什么?
谢谢!
Google Chrome支持哪种版本的JavaScript与Mozilla Firefox相关?换句话说,Chrome是否支持Firefox 1.6,1.7或1.8,Firefox也支持它们或它们的某些组合?
我想保存带有alpha透明度的.png图像和没有alpha透明度的图像.jpg(即使它们的原始格式是.png或.gif).如何使用ImageMagick检测图像是否具有Alpha透明度?
内jQuery的一个常见的模式是需要被传递的阵列的元素及其该阵列内的索引的回调的方法.然而,似乎完全随机的是哪个论证首先出现.例如,来自http://api.jquery.com上的jQuery文档:
jQuery.each( collection, callback(indexInArray, valueOfElement) ).each( function(index, Element) )jQuery.map( array, callback(elementOfArray, indexInArray) ).map( callback(index, domElement) )jQuery.grep( array, function(elementOfArray, indexInArray), [ invert ] ).filter( function(index) )在三起案件(jQuery.each,.each,.map)指数是第一位的.在另外两个(jQuery.grep,jQuery.map)中,元素首先出现.我知道api现在已经确定了,但这对我来说似乎是一个严重的不一致.
有没有我缺失的模式或者这只是随机的?这应该修复还是我应该闭嘴并记住它们?