前端代码优化。

2024-05-23 22:17:23 +08:00
 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'
	};
};

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

2069 次点击
所在节点    程序员
16 条回复
shiyidi
2024-05-23 22:59:54 +08:00
const getObj = (data: IData) => {
return {
a: data.a || '1',
b: data.b || '2',
c: data.c || '3'
}
}
v21984
2024-05-23 23:15:42 +08:00
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
2024-05-23 23:36:27 +08:00
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
2024-05-23 23:50:39 +08:00
@CHTuring 额,用手机回复写少了代码
jianchang512
2024-05-24 00:04:29 +08:00
这种问题应该是 chatGPT 更擅长的领域吧
luckfunc
2024-05-24 00:17:21 +08:00
@shiyidi 谢谢大佬 受教了,之前写法有点多余
luckfunc
2024-05-24 00:19:34 +08:00
@CHTuring 谢谢老哥,学习了
luckfunc
2024-05-24 00:23:46 +08:00
@CHTuring 不过有点问题,当 abc 都有值,但是值为空字符串的时候 ,还想返回默认值
vace
2024-05-24 00:41:32 +08:00
```ts
const getObj = ({ a, b, c }: IData = {}) => ({ a: a || '1', b: b || '2', c: c || '3' })
```
ColdBird
2024-05-24 08:58:22 +08:00
这代码没啥好优化的,又没啥逻辑,平铺直叙的代码优化啥
nitmali
2024-05-24 09:30:22 +08:00
优化 ×
简化 √
realJamespond
2024-05-24 10:17:26 +08:00
return {a:1,b:2,c:3,...data}
xiao8276
2024-05-24 10:25:52 +08:00
CHTuring
2024-05-24 10:48:57 +08:00
@luckfunc #8 Object.keys 遍历一遍,判断字符串类型并为空就删除它
tianzi123
2024-05-24 14:43:07 +08:00
@realJamespond 哥哥牛逼
luckfunc
2024-07-27 20:17:56 +08:00
![IDE new Dark Theme Preview]( https://imgur.com/N1g4sHN)

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

https://ex.noerr.eu.org/t/1043399

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

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

© 2021 V2EX