Dans nodeJs, existe-t-il un moyen de parcourir un tableau sans utiliser la taille du tableau?

Disons que j’ai

myArray = ['item1', 'item2'] 

j’ai essayé

 for (var item in myArray) {console.log(item)} 

Il imprime 0 1

Ce que je souhaite est d’avoir item1 item2

Existe-t-il une autre syntaxe qui fonctionne sans utiliser

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

Vous pouvez utiliser Array.forEach

 var myArray = ['1','2',3,4] myArray.forEach(function(value){ console.log(value); }); 

Ce que vous voulez probablement, c’est for... of , une construction relativement nouvelle construite dans le but express d’énumérer les valeurs des objects itérables:

 var myArray = ["a","b","c","d"]; for (let item of myArray) { console.log(item); } 

Pour imprimer ‘item1’, ‘item2’, ce code fonctionnerait.

 var myarray = ['hello', ' hello again']; for (var item in myarray) { console.log(myarray[item]) } 

Dans ES5, il n’existe aucun moyen efficace d’itérer sur un tableau fragmenté sans utiliser la propriété length. Dans ES6, vous pouvez utiliser for...of . Prenez ces exemples:

 'use ssortingct'; var arr = ['one', 'two', undefined, 3, 4], output; arr[6] = 'five'; output = ''; arr.forEach(function (val) { output += val + ' '; }); console.log(output); output = ''; for (var i = 0; i < arr.length; i++) { output += arr[i] + ' '; } console.log(output); output = ''; for (var val of arr) { output += val + ' '; }; console.log(output); 
   

Utilisez la fonction Javascript intégrée appelée map. .map () fera exactement ce que vous cherchez!

Utilisez des iterators …

 var myarray = ['hello', ' hello again']; processArray(myarray[Symbol.iterator](), () => { console.log('all done') }) function processArray(iter, cb) { var curr = iter.next() if(curr.done) return cb() console.log(curr.value) processArray(iter, cb) } 

Vue d’ensemble plus détaillée: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols