Python memiliki fungsienumerate
bawaan, untuk mendapatkan (index, item)
pasangan yang dapat diulang .
Apakah ES6 memiliki padanan untuk sebuah array? Apa itu?
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']
Setara dengan ES6 tanpa 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' ]
javascript
functional-programming
ecmascript-6
Guillaume Vincent
sumber
sumber
elements.map(( element, i ) => `${ i }:${ element }`);
elements.map((element,index) => index + ':' + element)
Jawaban:
Ya ada, periksa
Array.prototype.entries()
.const foobar = ['A', 'B', 'C']; for (const [index, element] of foobar.entries()) { console.log(index, element); }
sumber
enumerate
daripada[].map()
, ia mengembalikan iterator.filter
tetapi tetap menggunakan indeks yang Anda miliki sebelum memfilter.Array.prototype.map
sudah memberi Anda indeks sebagai argumen kedua untuk prosedur callback ... Dan itu didukung hampir di semua tempat.['a','b'].map(function(element, index) { return index + ':' + element; }); //=> ["0:a", "1:b"]
Saya suka ES6 juga
['a','b'].map((e,i) => `${i}:${e}`) //=> ["0:a", "1:b"]
sumber
entries()
let array = [1, 3, 5]; for (let [index, value] of array.entries()) console.log(index + '=' + value);
sumber
Maaf jika saya bodoh (sedikit pemula di JavaScript di sini), tetapi tidak bisakah Anda menggunakan saja
forEach
? misalnya:function withIndex(elements) { var results = []; elements.forEach(function(e, ind) { results.push(`${e}:${ind}`); }); return results; } alert(withIndex(['a', 'b']));
Ada juga jawaban naomik yang lebih cocok untuk kasus penggunaan khusus ini, tetapi saya hanya ingin menunjukkan bahwa itu
forEach
juga sesuai dengan tagihan.ES5 + didukung.
sumber
pythonic
menawarkanenumerate
fungsi yang bekerja pada semua iterable, bukan hanya array, dan mengembalikan Iterator , seperti python: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
Pengungkapan Saya penulis dan pengelola Pythonic
sumber
pythonic
. Menurut Cara untuk tidak menjadi pelaku spam di Pusat Bantuan Stack Overflow, "Komunitas di sini cenderung menolak promosi diri secara terbuka dan menandainya sebagai spam. Posting jawaban yang baik dan relevan, dan jika beberapa (tetapi tidak semua) kebetulan tentang produk atau situs web Anda, tidak apa-apa. Namun, Anda harus mengungkapkan afiliasi Anda dalam jawaban Anda. "sebagai
Kyle
danShanoor
katakan adalah Array.prototype.entries ()tapi untuk pemula seperti saya, sulit untuk memahami maknanya.
jadi di sini berikan contoh yang bisa dimengerti:
for(let curIndexValueList of someArray.entries()){ console.log("curIndexValueList=", curIndexValueList) let curIndex = curIndexValueList[0] let curValue = curIndexValueList[1] console.log("curIndex=", curIndex, ", curValue=", curValue) }
setara dengan
python
kode:for curIndex, curValue in enumerate(someArray): print("curIndex=%s, curValue=%s" % (curIndex, curValue)) }
sumber