如何为每个循环获取a的索引...我想每隔一次迭代打印数字
例如
for(value in collection) {
if(iteration_no % 2) {
//do something
}
}
Run Code Online (Sandbox Code Playgroud)
在java中我们有传统的for循环
for(int i=0; i< collection.length; i++)
Run Code Online (Sandbox Code Playgroud)
怎么弄到我?
我需要将For循环字符添加到空字符串中.我知道您可以在Javascript中使用函数concat来使用字符串进行连接
var first_name = "peter";
var last_name = "jones";
var name=first_name.concat(last_name)
Run Code Online (Sandbox Code Playgroud)
但以我的例子,它不起作用.知道如何以另一种方式做到这一点吗?
我的代码:
var text ="";
for (var member in list) {
text.concat(list[member]);
}
Run Code Online (Sandbox Code Playgroud) 我在request对象中设置了一个值,如下所示,
String[] categoriesList=null;
categoriesList = engine.getCategoryNamesArray();
request.setAttribute("categoriesList", categoriesList );
Run Code Online (Sandbox Code Playgroud)
这就是我在jsp页面中迭代的方式
<% if(request.getAttribute("categoriesList") != null) { %>
<c:forEach var="categoryName" items="${categoriesList}">
<li><a onclick="getCategoryIndex()" href="#">${categoryName}</a></li>
</c:forEach>
<% }%>
Run Code Online (Sandbox Code Playgroud)
如何获取每个元素的索引并将其传递给JavaScript函数onclick="getCategoryIndex()".
对于具有多个维度的数组,我们通常需要for为每个维度编写一个循环.例如:
vector< vector< vector<int> > > A;
for (int k=0; k<A.size(); k++)
{
for (int i=0; i<A[k].size(); i++)
{
for (int j=0; j<A[k][i].size(); j++)
{
do_something_on_A(A[k][i][j]);
}
}
}
double B[10][8][5];
for (int k=0; k<10; k++)
{
for (int i=0; i<8; i++)
{
for (int j=0; j<5; j++)
{
do_something_on_B(B[k][i][j]);
}
}
}
Run Code Online (Sandbox Code Playgroud)
你for-for-for经常在我们的代码中看到这种循环.如何使用宏来定义for-for-for循环,这样我每次都不需要重写这种代码?有一个更好的方法吗?
今天,当我得到一段已经使用过数百次的代码时,我很乐意编写代码:
迭代集合(这里是ArrayList)
出于某种原因,我实际上看了Eclipse的自动完成选项,它让我想知道:
以下循环比其他循环更好用?
经典数组索引循环:
for (int i = 0; i < collection.length; i++) {
type array_element = collection.get(index);
}
Run Code Online (Sandbox Code Playgroud)
Iterator hasNext()/ next():
for (Iterator iterator = collection.iterator(); iterator.hasNext();) {
type type = (type) iterator.next();
}
Run Code Online (Sandbox Code Playgroud)
我最喜欢的,因为它写得如此简单:
for (iterable_type iterable_element : collection) {
}
Run Code Online (Sandbox Code Playgroud) 在python中编写了这个函数来转换矩阵:
def transpose(m):
height = len(m)
width = len(m[0])
return [ [ m[i][j] for i in range(0, height) ] for j in range(0, width) ]
Run Code Online (Sandbox Code Playgroud)
在这个过程中,我意识到我并不完全理解嵌套for循环的单行是如何执行的.请回答以下问题,帮助我理解:
鉴于,
[ function(i,j) for i,j in object ]
Run Code Online (Sandbox Code Playgroud)
其他信息也很受欢迎.
我有以下代码:
a = [0,1,2,3]
for a[-1] in a:
print(a[-1])
Run Code Online (Sandbox Code Playgroud)
输出为:
0
1
2
2
Run Code Online (Sandbox Code Playgroud)
我对为什么列表索引可以用作for循环中的索引变量感到困惑。
我有一个IInventory*的向量,我正在使用C++ 11范围循环遍历列表,以便对每个进行处理.
在做了一些东西之后,我可能想要从列表中删除它并删除对象.我知道我可以随时调用delete指针来清理它,但是在范围for循环中,从矢量中删除它的正确方法是什么?如果我从列表中删除它将使我的循环失效?
std::vector<IInventory*> inv;
inv.push_back(new Foo());
inv.push_back(new Bar());
for (IInventory* index : inv)
{
// Do some stuff
// OK, I decided I need to remove this object from 'inv'...
}
Run Code Online (Sandbox Code Playgroud) 在MySQL中,我有一个带有For循环的存储过程:
DELIMITER $$
CREATE PROCEDURE ABC()
BEGIN
DECLARE a INT Default 0 ;
simple_loop: LOOP
SET a=a+1;
select a;
IF a=5 THEN
LEAVE simple_loop;
END IF;
END LOOP simple_loop;
END $$
Run Code Online (Sandbox Code Playgroud)
它总是打印1.MySQL for循环的正确语法是什么?
让我们假设我们有一个结构,用于保存3个带有一些成员函数的双精度数:
struct Vector {
double x, y, z;
// ...
Vector &negate() {
x = -x; y = -y; z = -z;
return *this;
}
Vector &normalize() {
double s = 1./sqrt(x*x+y*y+z*z);
x *= s; y *= s; z *= s;
return *this;
}
// ...
};
Run Code Online (Sandbox Code Playgroud)
这有点简单,但我相信你同意类似的代码.这些方法可以方便地链接,例如:
Vector v = ...;
v.normalize().negate();
Run Code Online (Sandbox Code Playgroud)
甚至:
Vector v = Vector{1., 2., 3.}.normalize().negate();
Run Code Online (Sandbox Code Playgroud)
现在,如果我们提供了begin()和end()函数,我们可以在new-style for循环中使用Vector,比如循环遍历3个坐标x,y和z(你无疑可以构造更多"有用"的例子通过用例如String替换Vector):
Vector v = ...;
for (double x : v) { ... }
Run Code Online (Sandbox Code Playgroud)
我们甚至可以这样做:
Vector v = ...;
for …Run Code Online (Sandbox Code Playgroud)