web-dev-qa-db-fra.com

Comment parcourir la liste immuable comme forEach?

Je voudrais parcourir Immutable List, j'ai utilisé List.map pour le faire, cela peut être travaillé, mais pas bon. existe-t-il une meilleure façon? Parce que je vérifie simplement chaque élément du tableau, si l'élément correspond à ma règle, je fais quelque chose, tout comme Array.forEach, Je ne veux rien retourner comme Array.map.

par exemple, c'est mon travail maintenant:

let currentTheme = '';
let selectLayout = 'Layout1';
let layouts = List([{
  name: 'Layout1',
  currentTheme: 'theme1'
},{
  name: 'Layout2',
  currentTheme: 'theme2'
}])


layouts.map((layout) => {
  if(layout.get('name') === selectLayout){
     currentTheme = layout.get('currentTheme');
  }
});
14
Seven Lee

La méthode List.forEach existe pour les listes Immutable.js.

Cependant, une approche plus fonctionnelle consisterait à utiliser la méthode List.find comme suit:

let selectLayoutName = 'Layout1';
let layouts = List([Map({
  name: 'Layout1',
  currentTheme: 'theme1'
}),Map({
  name: 'Layout2',
  currentTheme: 'theme2'
})])


selectLayout = layouts.find(layout => layout.get('name') === selectLayoutName);
currentTheme = selectLayout.get('currentTheme')

Ensuite, votre code n'a pas d'effets secondaires.

10
Mateus Zitelli