Python有一个内置函数enumerate,以获取可迭代的(index, item)配对。
ES6是否有对应于数组的等价物?这是什么?
def elements_with_index(elements):
modified_elements = []
for i, element in enumerate(elements):
modified_elements.append("%d:%s" % (i, element))
return modified_elements
print(elements_with_index(["a","b"]))
#['0:a', '1:b']不带的ES6等效项enumerate
function elements_with_index(elements){
return elements.map(element => elements.indexOf(element) + ':' + element);
}
console.log(elements_with_index(['a','b']))
//[ '0:a', '1:b' ]发布于 2015-12-17 22:28:00
是的,有,请结账。Array.prototype.entries()..。
const foobar = ['A', 'B', 'C'];
for (const [index, element] of foobar.entries()) {
console.log(index, element);
}
发布于 2015-12-18 09:45:18
Array.prototype.map
Array.prototype.map已经将索引作为回调过程的第二个参数提供给您...它是支持几乎无处不在。
['a','b'].map(function(element, index) { return index + ':' + element; });
//=> ["0:a", "1:b"]我也喜欢ES6
['a','b'].map((e,i) => `${i}:${e}`)
//=> ["0:a", "1:b"]让它变得懒惰
但是,python的enumerate是懒惰的,所以我们也应该对这个特征进行建模-
function* enumerate (it, start = 0)
{ let i = start
for (const x of it)
yield [i++, x]
}
for (const [i, x] of enumerate("abcd"))
console.log(i, x)
0 a
1 b
2 c
3 d指定第二个参数,start,允许调用者控制索引的转换-
for (const [i, x] of enumerate("abcd", 100))
console.log(i, x)100 a
101 b
102 c
103 d发布于 2018-08-04 16:21:06
let array = [1, 3, 5];
for (let [index, value] of array.entries())
console.log(index + '=' + value);
https://stackoverflow.com/questions/34336960
复制相似问题