JavaScript不可变场景如何实现条件push并改写为单个表达式
不可变数组条件拼接单表达式实现方案
原逻辑为在基础数组末尾先条件追加元素4,再固定追加元素5,要求不修改原数组、单表达式实现、无空值插入,不同语言的可用实现如下:
- JavaScript/TypeScript 实现
基于数组展开运算符实现,全程生成新数组,无原数组修改:
逻辑说明:条件成立时展开const newA = [...A, ...(condition ? [4] : []), 5][4]追加对应元素,条件不成立时展开空数组[],不会产生null/undefined等无效占位值,整个逻辑为单个表达式可直接赋值或作为返回值使用。 - Python 实现
基于列表拼接实现,适配Python不可变序列操作场景:
逻辑说明:通过三元表达式控制中间拼接的列表内容,条件不成立时拼接空列表,不会引入无效值。new_A = A + ([4] if condition else []) + [5]
内容的提问来源于stack exchange,提问作者Luke Miles
相关产品推荐
相关产品推荐

