如何实现仅编写一次列表,根据参数返回不同版本的列表?
当然可以!完全不用重复写两次列表,一行代码就能搞定这个需求,还能让代码更简洁易维护。
你可以先定义好基础的核心列表,然后根据use_five的取值,用扩展运算符(...)或者concat方法动态决定是否追加额外的元素:
方案一:使用扩展运算符
function put_list(use_five) { return [...[{name:"a"}, {name: "asxsa"}, {name: "ABC"}, {name: "Well"}], ...(use_five ? [{name: "5"}] : [])]; }
方案二:使用concat方法
function put_list(use_five) { return [{name:"a"}, {name: "asxsa"}, {name: "ABC"}, {name: "Well"}].concat(use_five ? [{name: "5"}] : []); }
思路解释
两种方式的核心逻辑是一致的:
- 先写好固定的基础列表(也就是
use_five为false时的返回内容) - 根据
use_five的布尔值判断:如果为true,就追加包含{name: "5"}的数组;如果为false,就追加一个空数组(相当于不添加任何额外元素)
这样你只需要维护一份基础列表,以后要修改这些元素的话,只需要改一次就行,完美避免了重复代码的问题。我自己在项目里遇到类似场景时也经常这么写,既简洁又不容易出错~
内容的提问来源于stack exchange,提问作者sof-03
相关产品推荐
相关产品推荐

