警告:
问题仍然适用于
for…of
循环.>不要使用for…in
迭代数组,用它来迭代对象的属性.那说,这个
我知道for…in
JavaScript 中的基本语法如下所示:
for (var obj in myArray) {
// ...
}
Run Code Online (Sandbox Code Playgroud)
但是如何获得循环计数器/索引?
var i = 0;
for (var obj in myArray) {
alert(i)
i++
}
Run Code Online (Sandbox Code Playgroud)
for (var i = 0; i < myArray.length; i++) {
var obj = myArray[i]
alert(i)
}
Run Code Online (Sandbox Code Playgroud)
但我宁愿使用更简单的for-in
循环.我认为它们看起来更好,更有意义.
有更简单或更优雅的方式吗?
for i, obj in enumerate(myArray):
print i
Run Code Online (Sandbox Code Playgroud) 我需要在列表中找到元素的频率
a = [1,1,1,1,2,2,2,2,3,3,4,5,5]
Run Code Online (Sandbox Code Playgroud)
输出 - >
b = [4,4,2,1,2]
Run Code Online (Sandbox Code Playgroud)
另外我想从a中删除重复项
a = [1,2,3,4,5]
Run Code Online (Sandbox Code Playgroud) 我想使用一个简单的倒数计时器,从运行函数30秒开始,到0结束.没有毫秒.怎么编码?
在C#中以最佳性能获取线程安全计数器的方法是什么?
这很简单:
public static long GetNextValue()
{
long result;
lock (LOCK)
{
result = COUNTER++;
}
return result;
}
Run Code Online (Sandbox Code Playgroud)
但是有更快的选择吗?
我有以下简单的脚本,我正在运行一个循环,并希望维护一个COUNTER
.我无法弄清楚为什么计数器没有更新.这是由于子shell创建了吗?我怎样才能解决这个问题?
#!/bin/bash
WFY_PATH=/var/log/nginx
WFY_FILE=error.log
COUNTER=0
grep 'GET /log_' $WFY_PATH/$WFY_FILE | grep 'upstream timed out' | awk -F ', ' '{print $2,$4,$0}' | awk '{print "http://domain.com"$5"&ip="$2"&date="$7"&time="$8"&end=1"}' | awk -F '&end=1' '{print $1"&end=1"}' |
(
while read WFY_URL
do
echo $WFY_URL #Some more action
COUNTER=$((COUNTER+1))
done
)
echo $COUNTER # output = 0
Run Code Online (Sandbox Code Playgroud) 我想计算textarea中的字符,所以我只是做了:
<textarea id="field" onkeyup="countChar(this)"></textarea>
function countChar(val){
var len = val.value.length;
if (len >= 500) {
val.value = val.value.substring(0, 500);
} else {
$('#charNum').text(500 - len);
}
};
Run Code Online (Sandbox Code Playgroud)
我的代码有什么问题?这是行不通的!好吧,这是一个新手笔迹,需要帮助.
除了对反向列表理解进行列表理解之外,还有一种pythonic方法可以按值对Counter进行排序吗?如果是这样,它比这更快:
>>> from collections import Counter
>>> x = Counter({'a':5, 'b':3, 'c':7})
>>> sorted(x)
['a', 'b', 'c']
>>> sorted(x.items())
[('a', 5), ('b', 3), ('c', 7)]
>>> [(l,k) for k,l in sorted([(j,i) for i,j in x.items()])]
[('b', 3), ('a', 5), ('c', 7)]
>>> [(l,k) for k,l in sorted([(j,i) for i,j in x.items()], reverse=True)]
[('c', 7), ('a', 5), ('b', 3)
Run Code Online (Sandbox Code Playgroud) 我使用CSS counter
和content
属性生成标题和数字的编号:
img.figure:after {
counter-increment: figure;
content: "Fig. " counter(section) "." counter(figure);
}
Run Code Online (Sandbox Code Playgroud)
这个(适当的浏览器假设)给出了一个很好的标签"图1.1","图1.2"等等跟随任何图像.
问题:如何从Javascript访问它?现在的问题是在该双重我想访问任一特定计数器(在一定的DOM节点)的当前值或所述CSS生成的内容的值(在某一DOM节点)或,很明显,这两个信息.
背景:我想附加链接反向引用数字相应的数字,如下所示:
<a href="#fig1">see here</h>
------------------------^ " (Fig 1.1)" inserted via JS
Run Code Online (Sandbox Code Playgroud)
据我所见,它归结为这个问题:我可以访问content
或counter-increment
通过getComputedStyle
:
var fig_content = window.getComputedStyle(
document.getElementById('fig-a'),
':after').content;
Run Code Online (Sandbox Code Playgroud)
但是,这不是实时值,而是样式表中声明的值.我找不到任何接口来访问真实的实时值.在计数器的情况下,甚至没有真正的CSS属性来查询.
编辑:通过DOM规范深入挖掘,我找到了DOM Level 2 Style Counter界面.这似乎a)允许访问当前计数器值,b)至少在Firefox中实现.但是,我不知道如何使用它.在Firebug输出后,我当前的方法悲惨地死了:
// should return a DOM 2 Counter interface implementation...
window.getComputedStyle(fig_a_element, ':after')
.getPropertyCSSValue("counter-increment")[0]
.getCounterValue();
[Exception... "Modifications …
Run Code Online (Sandbox Code Playgroud) 我如何计算句子中的单词?我正在使用Python.
例如,我可能有字符串:
string = "I am having a very nice 23!@$ day. "
Run Code Online (Sandbox Code Playgroud)
这将是7个字.我在每个单词之后/之前以及涉及数字或符号时随机数量的空格都遇到了问题.
我试图找出是否有人知道已经存在的jQuery插件将以指定的速度计数到目标数量.
例如,请查看Gmail主页上Google的免费存储空间数量,标题为"空格很多".它在<span>
标签中有一个起始编号,并且每秒慢慢向上计数.
我正在寻找类似的东西,但我希望能够指明: