0
votes

Appliquer des conditions à un tableau

J'ai un problème qui postule pour renvoyer un tableau après avoir appliqué une condition.

ici c'est,

avec un tableau donné: [1, 2, 3] condition 1: s'il est étrange, devrait multiplier * 2.

Condition 2: Si c'est un même, il suffit de le retourner.

attendu_result: [2, 2, 6]

voici mon approche; xxx

Je sais que c'est assez basique, Et sûrement, mon approche est tout faux, mais c'est ma première semaine d'apprentissage JS, j'espère que certains d'entre vous me donnent une lumière à ce sujet!

Merci beaucoup


1 commentaires

Bienvenue à apprendre JS! Vous voudrez peut-être d'abord voir comment faire la boucle de votre tableau et créer un nouveau (voir Ce ). Ensuite, vous pouvez utiliser des fonctions intégrées telles que mapper , foreach (toutes les autres réponses).


6 Réponses :


2
votes

Utiliser .map code> Pour transformer un tableau en un autre - ce qui est renvoyé à partir de chaque appel de la fonction de rappel sera l'élément du même index dans la nouvelle matrice:

p>

function oddToEven(array) {
  return array.map(function(num) {
    if (num % 2 === 1) // Odd
      return num * 2;
    else // Even (or not an integer)
      return num;
  }
}


1 commentaires

ou d'être moins verbose array.map (it => il * (it% 2 + 1)) :)



0
votes

Dans JavaScript, nous utilisons habituellement mappe code>, Filtre code> et Réduisez code> pour résoudre ce type de problème dans une manière fonctionnelle forte >

const originalArray = [1,2,3,4];
const convertedArray = oddToEven(originalArray);
// origianlArray is [1,2,3,4]
// convertedArray is [2,2,6,4]


0 commentaires

0
votes

Vous pouvez utiliser une boucle simple foreach () code> pour cela:

p>

var arr = [1, 2, 3, 4, 5, 6, 7];
var res = [];
arr.forEach(function(val){
  if(val % 2 === 0){
   res.push(val); 
  } else {
   res.push(val*2);
  }
});
console.log(res);


0 commentaires

1
votes

Lorsque vous effectuez [tableau] Vous enveloppez essentiellement le tableau dans un autre tableau, vous n'avez probablement pas besoin [[1, 2, 3]] . Pour copier un tableau, utilisez [... Array] , cependant, avez-vous vraiment besoin de trois tableaux? Ne serait-il pas suffisant d'aller sur le tableau passé et de le changer selon les règles? Pour cela, nous devons passer sur les indices du tableau: xxx

maintenant à l'intérieur de cette boucle, vous pouvez obtenir l'élément actuel avec matrice [i] , et aussi Modifiez-le avec Array [i] =? ... Vous pouvez également vérifier s'il est même avec xxx


1 commentaires

@maaz c'est en fait Comment ces questions doivent être répondues , mais beaucoup Les gens (même avec un représentant élevé) semblent ne pas comprendre ce principe ...



0
votes

Voici comment modifier votre propre code: xxx


0 commentaires

0
votes

Si vous souhaitez transmettre le tableau dans une fonction: -

     function oddToEven(array) {
      var i;
      var filalOutput = [];
        for (i=0;i<array.length;i++){
          var x = array [i]
          if(x%2==0)
              filalOutput.push(x);
          else{
              filalOutput.push(x*2);
          }
      }

        return filalOutput
    }
    {
      var array1=[];
      const args = [1, 2, 3];
      array1=oddToEven( args);
      console.log(array1);
    }


0 commentaires