J'ai une fonction que vous pouvez voir ci-dessous:

Je veux le param use_five:

function put_list(use_five) {
  if (use_five) {
    return [{name:"a"}, {name: "asxsa"}, {name: "ABC"}, {name: "Well"}, {name: "5"}]
  }else {
    return [{name:"a"}, {name: "asxsa"}, {name: "ABC"}, {name: "Well"}]
  }

}

Si est true, je retourne:

[{name:"a"}, {name: "asxsa"}, {name: "ABC"}, {name: "Well"}, {name: "5"}]

Si est false, je retourne:

[{name:"a"}, {name: "asxsa"}, {name: "ABC"}, {name: "Well"}]

Je sais que je peux utiliser un if-else pour le jugement, mais je ne veux pas le faire, car dans mon projet pratique, il y a beaucoup d'articles dans la liste.

Alors, existe-t-il un moyen de le réaliser par une ligne au lieu d'écrire deux lignes de liste?

-1
sof-03 23 mai 2018 à 16:59

3 réponses

Meilleure réponse
function put_list(use_five) {
  let result = [{name:"1"}, {name: "2"}, {name: "3"}, {name: "4"}];
  if (use_five) {
    result.push({name:"5"});
  }
  return result;
}
1
Máté Safranka 23 mai 2018 à 14:04

Vous pouvez découper le tableau pour le nombre d'éléments souhaité.

function getList(take5) {
    var data = [{ name: "1" }, { name: "2" }, { name: "3" }, { name: "4" }, { name: "5" }];
    return data.slice(0, take5 ? 5 : 4);
}

console.log(getList());
console.log(getList(true));
0
Nina Scholz 23 mai 2018 à 14:05

Je ne peux pas commencer à deviner ce que vous cherchez vraiment, mais voici une façon de réduire la répétition:

function put_list(use_five) {
  var items = [{name:"a"}, {name: "asxsa"}, {name: "ABC"}, {name: "Well"}];
  if (use_five) {
    items.push({name: "5"});
  }
  return items;
}
1
Thomas 23 mai 2018 à 14:04