前端代码优化。

216 天前
 luckfunc

interface IData {
	a?: string;
	b?: string;
	c?: string;
}
const getObj = (data: IData) => {
	const { a = '1', b = '2', c = '3' } = data || {};
	// data 可能返回的值是 {  a: '', b: '', c: ''}
	return {
		a: a || '1',
		b: b || '2',
		c: c || '3'
	};
};

有没有大佬可以指教下 这段代码应该怎么优化。

1666 次点击
所在节点    程序员
16 条回复
shiyidi
216 天前
const getObj = (data: IData) => {
return {
a: data.a || '1',
b: data.b || '2',
c: data.c || '3'
}
}
v21984
216 天前
interface IData {
a?: string;
b?: string;
c?: string;
}
const getObj = (data: IData) => {
const { a = '1', b = '2', c = '3' } = data;
return { a, b, c };
};
CHTuring
216 天前
interface IData {
a?: string;
b?: string;
c?: string;
}
const getObj: Required<IData>= (data?: IData) => {
const { a = '1', b = '2', c = '3' } = data ?? {}
return { a, b, c };
};
CHTuring
216 天前
@CHTuring 额,用手机回复写少了代码
jianchang512
216 天前
这种问题应该是 chatGPT 更擅长的领域吧
luckfunc
216 天前
@shiyidi 谢谢大佬 受教了,之前写法有点多余
luckfunc
216 天前
@CHTuring 谢谢老哥,学习了
luckfunc
216 天前
@CHTuring 不过有点问题,当 abc 都有值,但是值为空字符串的时候 ,还想返回默认值
vace
216 天前
```ts
const getObj = ({ a, b, c }: IData = {}) => ({ a: a || '1', b: b || '2', c: c || '3' })
```
ColdBird
216 天前
这代码没啥好优化的,又没啥逻辑,平铺直叙的代码优化啥
nitmali
216 天前
优化 ×
简化 √
realJamespond
216 天前
return {a:1,b:2,c:3,...data}
xiao8276
216 天前
CHTuring
216 天前
@luckfunc #8 Object.keys 遍历一遍,判断字符串类型并为空就删除它
tianzi123
215 天前
@realJamespond 哥哥牛逼
luckfunc
151 天前
![IDE new Dark Theme Preview]( https://imgur.com/N1g4sHN)

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1043399

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX