0
votes

Multipliez chaque élément de matrice par 2 en utilisant la boucle 'pour'

J'essaie de doubler chaque élément dans un tableau xxx

avec A pour boucle et continuez à obtenir NAN erreur ... je l'apprends toujours Tout conseil serait apprécié.

J'ai essayé pour la boucle, .map () et d'autres méthodes, mais je ne peux tout simplement pas voir le problème évident ... xxx

attendu: chaque élément de tableau multiparé par deux et retourné: xxx

deviendrait: xxx


2 commentaires

chaîne * 2 ne vous retournera pas 2 cordes. Il retournera nan


[Astuce]: Recherchez à l'aide d'utiliser Tableau # push () deux fois dans votre boucle


5 Réponses :


1
votes
  • itérer sur Entrée code> Tableau en utilisant .map () code>. li>
  • Initialisez le nouveau tableau Utilisation de Array () Code> Constructeur et remplissez-le à l'aide de .fill () Code> Méthode des tableaux. LI>
  • Enfin, vous pouvez convertir une gamme de tableaux en un seul tableau à l'aide de .concat () code> et étalement opérateur. LI>

    p>

    const input = ['onions', 'tomatoes', 'garlic', 'fontina'];
    
    const dupeValues = (arr, factor) => [].concat(...arr.map(s => new Array(factor).fill(s)));
    
    console.log(dupeValues(input, 2));
    console.log(dupeValues(input, 3));

3 commentaires

Comme vous pouvez le constater que l'utilisateur est nouveau à la programmation. Ajout d'une explication à la réponse sera étonnée aux lecteurs op et futurs.


Merci beaucoup tout le monde pour votre aide. J'ai appris une tonne de toutes les réponses et en utilisant la figure avec le tableau.Reduce () et la propagation de l'opérateur ... merci pour votre temps ...


Pour le garder générique +1



2
votes

Voici un moyen de le faire avec array.reduce () code> et l'opérateur de propagation:

p>

['a', 'b', 'c'].reduce((acc, x) => ([...acc, x, x]), []);


2 commentaires

Comme vous pouvez le constater que l'utilisateur est nouveau à la programmation. Ajout d'une explication à la réponse sera étonnée aux lecteurs op et futurs.


Merci, c'est un bon point, je vais ajouter plus d'explications



0
votes

Utilisation de vanilla JavaScript:

p>

const ingredients = [ 'onions', 'tomatoes', 'garlic', 'fontina' ]
const ingredientsToRemove = [ 'onions', 'red pepper' ]

// Using Array.reduce method
const doubleIngredients = ingredients.reduce(
  ( array, ingredient ) =>
  {
    // If the ingredient has to be removed, return the array
    // Else return the array with two times the current ingredient
    return ingredientsToRemove.includes( ingredient ) ?
      array
      :
      [ ...array, ingredient, ingredient ]      
  },
  []
)

console.log({ ingredients, doubleIngredients })


0 commentaires

0
votes

bien le problème ici est em> strong>

string * 2 ne vous retournera pas 2 cordes à vous. Il retournera nan code> em> stry> p>

p>

let arr = ['onions', 'tomatoes', 'garlic', 'fontina']
let output = arr.reduce((op,inp)=>(op.concat([inp,inp])),[])
console.log(output)


0 commentaires

0
votes

Utilisez Array.FlatMap () code> (non supporté par IE / Edge):

p>

const array = ['onions', 'tomatoes', 'garlic', 'fontina'];

const result = array.flatMap(item => [item, item]);

console.log(result)


0 commentaires