J'ai un problème qui postule pour renvoyer un tableau après avoir appliqué une condition.
ici c'est, p>
avec un tableau donné: [1, 2, 3] P> P> condition 1: strong> s'il est étrange, devrait multiplier * 2. p> Condition 2: strong> Si c'est un même, il suffit de le retourner. p> attendu_result: strong> [2, 2, 6] p> voici mon approche; em> p > 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! P> Merci beaucoup P> P>
6 Réponses :
Utiliser p> .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: function oddToEven(array) {
return array.map(function(num) {
if (num % 2 === 1) // Odd
return num * 2;
else // Even (or not an integer)
return num;
}
}
ou d'être moins verbose array.map (it => il * (it% 2 + 1)) code> :)
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 const originalArray = [1,2,3,4];
const convertedArray = oddToEven(originalArray);
// origianlArray is [1,2,3,4]
// convertedArray is [2,2,6,4]
Vous pouvez utiliser une boucle simple p> foreach () code> pour cela: 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);
Lorsque vous effectuez maintenant à l'intérieur de cette boucle, vous pouvez obtenir l'élément actuel avec [tableau] code> Vous enveloppez essentiellement le tableau dans un autre tableau, vous n'avez probablement pas besoin [[1, 2, 3]] code>. Pour copier un tableau, utilisez [... Array] code>, 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: matrice [i] code>, et aussi Modifiez-le avec Array [i] =? code> ... Vous pouvez également vérifier s'il est même avec p>
@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 ...
Voici comment modifier votre propre code:
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);
}
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 code>,foreach code> (toutes les autres réponses).