标签: iteration

如何遍历包含对象的数组并访问其属性

我想循环遍历数组中包含的对象并更改每个对象的属性.如果我这样做:

for (var j = 0; j < myArray.length; j++){

console.log(myArray[j]);

}
Run Code Online (Sandbox Code Playgroud)

控制台应该调出阵列中的每个对象,对吧?但实际上它只显示第一个对象.如果我控制台将数组记录在循环外部,那么所有对象都会出现,所以肯定会有更多.

无论如何,这是下一个问题.如何使用循环访问数组中的Object1.x?

for (var j = 0; j < myArray.length; j++){

console.log(myArray[j.x]);

}
Run Code Online (Sandbox Code Playgroud)

这将返回"未定义".循环外的控制台日志再次告诉我,对象都具有"x"的值.如何在循环中访问这些属性?

我被推荐到其他地方为每个属性使用单独的数组,但我想确保我已经用尽了这个大道.

谢谢!

javascript arrays iteration

160
推荐指数
12
解决办法
33万
查看次数

是否保证从LinkedHashMap对象返回键和值的顺序?

我知道LinkedHashMap有一个可预测的迭代顺序(插入顺序).是否Set通过返回LinkedHashMap.keySet()Collection返回的LinkedHashMap.values()也维持这种秩序?

java iteration linkedhashmap

154
推荐指数
4
解决办法
4万
查看次数

迭代字符串中所有字符的最快方法

在Java中,迭代字符串中所有字符的最快方法是什么,这:

String str = "a really, really long string";
for (int i = 0, n = str.length(); i < n; i++) {
    char c = str.charAt(i);
}
Run Code Online (Sandbox Code Playgroud)

或这个:

char[] chars = str.toCharArray();
for (int i = 0, n = chars.length; i < n; i++) {
    char c = chars[i];
}
Run Code Online (Sandbox Code Playgroud)

编辑:

如果重复调用的成本是什么,我想知道的是charAt长迭代期间方法最终是要么不是比执行一个调用的成本小于或大于toCharArray开头,然后直接在迭代期间访问阵列.

如果有人能够为不同的字符串长度提供强大的基准测试,考虑到JIT预热时间,JVM启动时间等等,而不仅仅是两次调用之间的差异,那就太棒了System.currentTimeMillis().

java string iteration performance char

153
推荐指数
4
解决办法
23万
查看次数

迭代python中的对象属性

我有一个python对象,有几个属性和方法.我想迭代对象属性.

class my_python_obj(object):
    attr1='a'
    attr2='b'
    attr3='c'

    def method1(self, etc, etc):
        #Statements
Run Code Online (Sandbox Code Playgroud)

我想生成一个包含所有对象属性及其当前值的字典,但我想以动态的方式进行(所以如果以后我添加另一个属性,我也不必记得更新我的函数).

在PHP中,变量可以用作键,但是python中的对象是不可编写的,如果我使用点符号,它会创建一个名为my var的新属性,这不是我的意图.

只是为了让事情更清楚:

def to_dict(self):
    '''this is what I already have'''
    d={}
    d["attr1"]= self.attr1
    d["attr2"]= self.attr2
    d["attr3"]= self.attr3
    return d
Run Code Online (Sandbox Code Playgroud)

·

def to_dict(self):
    '''this is what I want to do'''
    d={}
    for v in my_python_obj.attributes:
        d[v] = self.v
    return d
Run Code Online (Sandbox Code Playgroud)

更新:使用属性我只是指这个对象的变量,而不是方法.

python oop iteration attributes

137
推荐指数
3
解决办法
13万
查看次数

如何在bash中生成步骤n的范围?(生成一系列增量的数字)

在bash中迭代范围的方法是

for i in {0..10}; do echo $i; done
Run Code Online (Sandbox Code Playgroud)

使用步骤迭代序列的语法是什么?说,我想在上面的例子中得到偶数.

iteration bash range

136
推荐指数
6
解决办法
10万
查看次数

Python列表迭代器行为和下一个(迭代器)

考虑:

>>> lst = iter([1,2,3])
>>> next(lst)
1
>>> next(lst)
2
Run Code Online (Sandbox Code Playgroud)

因此,正如预期的那样,推进迭代器是通过改变同一个对象来处理的.

在这种情况下,我希望:

a = iter(list(range(10)))
for i in a:
   print(i)
   next(a)
Run Code Online (Sandbox Code Playgroud)

跳过每个第二个元素:调用next应该使迭代器前进一次,然后循环的隐式调用应该再次前进 - 并且第二次调用的结果将被分配给i.

它没有.循环打印列表中的所有项目,而不跳过任何项目.

我的第一个想法是,这可能发生,因为循环调用iter它传递的内容,这可能会给出一个独立的迭代器 - 事实并非像我们所说的那样iter(a) is a.

那么,为什么next在这种情况下似乎没有推进迭代器呢?

python iteration iterator list

133
推荐指数
4
解决办法
20万
查看次数

如何在Java中迭代日期范围?

在我的脚本中,我需要在给定开始日期和结束日期的情况下,通过日期范围执行一组操作.
请为我提供使用Java实现此目的的指导.

for ( currentDate = starDate; currentDate < endDate; currentDate++) {

}
Run Code Online (Sandbox Code Playgroud)

我知道上面的代码根本不可能,但我这样做是为了向您展示我想要实现的目标.

java iteration date

131
推荐指数
8
解决办法
11万
查看次数

是否有更好的方法来迭代两个列表,每次迭代从每个列表中获取一个元素?

我有纬度列表和经度列表,需要迭代纬度和经度对.

是否更好:

(注意B是不正确的.这给了我所有的对,相当于itertools.product())

关于每个的相对优点的任何想法,或者更多的pythonic?

python iteration list

130
推荐指数
7
解决办法
14万
查看次数

如何在Javascript中循环键入/值对象?

var user = {};
Run Code Online (Sandbox Code Playgroud)

现在我想创建一个setUsers()接受键/值对对象并初始化user变量的方法.

setUsers = function(data) {     
   // loop and init user    
}
Run Code Online (Sandbox Code Playgroud)

数据如下:

234: "john", 23421: "smith", ....
Run Code Online (Sandbox Code Playgroud)

javascript iteration loops for-loop key-value

127
推荐指数
3
解决办法
29万
查看次数

如果我不知道名字,我该如何访问javascript对象的属性?

假设你有一个像这样的javascript对象:

var data = { foo: 'bar', baz: 'quux' };
Run Code Online (Sandbox Code Playgroud)

您可以通过属性名称访问属性:

var foo = data.foo;
var baz = data["baz"];
Run Code Online (Sandbox Code Playgroud)

但是,如果您不知道属性的名称,是否可以获取这些值?这些属性的无序性质是否使它们无法区分?

在我的情况下,我特别想到一个函数需要接受一系列名称 - 值对的情况,但属性的名称可能会改变.

到目前为止,我对如何执行此操作的想法是将属性的名称与数据一起传递给函数,但这感觉就像一个黑客.如果可能的话,我宁愿用内省来做这件事.

javascript iteration properties introspection object

120
推荐指数
3
解决办法
22万
查看次数