[javascript] 시퀀스에 대한 Python ‘enumerate’에 해당하는 ES6은 무엇입니까?

파이썬에는 반복 가능한 쌍 을 얻기위한 내장 함수가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' ]



답변

예, 확인하세요 Array.prototype.entries().

const foobar = ['A', 'B', 'C'];

for (const [index, element] of foobar.entries()) {
  console.log(index, element);
}


답변

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"]


답변

let array = [1, 3, 5];
for (let [index, value] of array.entries())
     console.log(index + '=' + value);


답변

내가 무지하다면 실례합니다 (여기서 JavaScript에 대한 초보자 비트), 그냥 사용할 수 forEach없습니까? 예 :

function withIndex(elements) {
    var results = [];
    elements.forEach(function(e, ind) {
        results.push(`${e}:${ind}`);
    });
    return results;
}

alert(withIndex(['a', 'b']));

이 특정 사용 사례에 더 적합한 naomik의 답변 도 있지만 forEach청구서에 맞는 것을 지적하고 싶었습니다 .

ES5 + 지원.


답변

pythonicenumerate배열뿐만 아니라 모든 이터 러블에서 작동 하는 함수를 제공하고 파이썬과 같이 Iterator를 반환합니다 .

import {enumerate} from 'pythonic';

const arr = ['a', 'b'];
for (const [index, value] of enumerate(arr))
    console.log(`index: ${index}, value: ${value}`);
// index: 0, value: a
// index: 1, value: b

공개 저는 Pythonic의 작성자이자 관리자입니다.


답변

같은 KyleShanoor말은 ) (Array.prototype.entries

그러나 나 같은 초보자에게는 그 의미를 완전히 이해하기가 어렵습니다.

그래서 여기에 이해할 수있는 예가 있습니다.

for(let curIndexValueList of someArray.entries()){
  console.log("curIndexValueList=", curIndexValueList)
  let curIndex = curIndexValueList[0]
  let curValue = curIndexValueList[1]
  console.log("curIndex=", curIndex, ", curValue=", curValue)
}

python코드 와 동일 :

for curIndex, curValue in enumerate(someArray):
  print("curIndex=%s, curValue=%s" % (curIndex, curValue))
}


답변