0
votes

foreach retourne non défini - Comment retourner un tableau à la place?

indiqué ci-dessous est le code dans lequel j'ai essayé de modifier un tableau à l'aide de la fonction de flèche, mais lors de l'exécution, il renvoie une valeur non définie comme la sortie peut donner des suggestions s'il vous plaît

p>

var modifyArray = (nums) => {
     return nums.forEach(function (element) {
          (element % 2 == 0) ? element *= 2 : element *= 3;
     })
}
console.log(modifyArray([1,2,3,4,5]));


1 commentaires

foreach méthode ne renvoie aucune valeur particulière, c'est-à-dire qu'il retournera non défini . Vous pouvez essayer d'utiliser array.pototype.map à la place. `` `return nums.map (fonction (élément (élément) {(élément% 2 == 0)? élément * = 2: élément * = 3;})` `` `


5 Réponses :


3
votes

.foreseach code> retourne non défini. Vous voulez probablement .MAP code> à un nouveau tableau et renvoyez que:

 return nums.map(function (element) {
      return (element % 2 == 0) ? element *= 2 : element *= 3;
 });


0 commentaires

0
votes

foreach code> ne renvoie rien - utilisez mapper code> à la place:

p>

var modifyArray = nums => nums.map(element => element % 2 == 0 ? element *= 2 : element *= 3)
console.log(modifyArray([1,2,3,4,5]));


1 commentaires

Je reçois votre point, mais même s'il revenait explicitement de l'intérieur de la méthode du rappel, il n'aurait toujours rien eu puisque pourcheche s'attend à une méthode qui retourne



0
votes

Voir les réponses ci-dessus.

Il y a une solution de contournement si vous souhaitez toujours utiliser foreach xxx


0 commentaires

0
votes

Qu'en est-il de l'utilisation de boucles?

var modifyArray = (nums) => {
    for (let i = 0; i < nums.length; i++) {
        let element = nums[i];
        // console.log(element + ' - ' + element % 2 );
        nums[i] = (element % 2 == 0) ? element *= 2 : element *= 3;
    }
    return nums;
}

console.log(modifyArray([1,2,3,4,5]));


0 commentaires

0
votes

Pour chaque retour non défini car il ne renvoie rien, mais vous pouvez utiliser pour utiliser la même chose en appuyant sur vos données dans un tableau. Avis que je n'ai pas changé votre approche mais je viens de l'étendre

p>

var modifyArray = (nums) => {
  var somearray = [];
  for (let i = 0; i < nums.length; i++) {
    somearray.push((nums[i] % 2 == 0) ? nums[i] *= 2 : nums[i] *= 3)
  }
  return somearray;
}

console.log(modifyArray([1, 2, 3, 4, 5]));


0 commentaires