JavaScript find方法返回值的合适变量命名方案咨询
JavaScript
Array.find() 返回值命名参考 核心思路很简单:变量名要直接说清「这是个什么东西、哪来的」,不要用脱离上下文就看不懂的泛称。你不想用result是非常好的习惯,这类名字没有任何场景信息,过段时间回看代码还要追溯赋值逻辑才能知道存的是什么,平白增加维护成本。
结合你给出的示例场景(从对象数组里找name匹配目标值的项),给你几类常用的、可读性很高的命名方案:
1. 绑定业务实体的命名(最推荐)
直接把你要找的业务实体名放进变量名,再加前缀说明这是「匹配到的那一个」,是所有方案里可读性最高的,看到名字就知道变量存的内容:
- 找用户:
matchedUser、foundUser、targetUser - 找商品:
matchedProduct、foundProduct - 找配置项:
matchedConfig、targetConfig
对应修改后的示例代码:
const targetName = 'someName1'; const userList = [ { name: 'someName1', age: 38 }, { name: 'someName2', age: 24 } ]; const matchedUser = userList.find(user => user.name === targetName); console.log(matchedUser);
顺便提一句,你原代码里的
arrayOfObj、targetChar也可以按这个思路优化成更贴合语义的userList、targetName,整体代码读起来会顺畅很多。
2. 通用场景命名
如果是写不绑定具体业务的通用工具逻辑,可以用和数组操作强关联的名字,比result清晰很多:
foundItem:明确表示是从数组里查找返回的匹配项matchedEntry:适合键值对、配置类数组的查找场景
3. 侧重存在性判断的场景命名
Array.find()找不到匹配项时会返回undefined,如果你后续要做「目标是否存在」的分支判断,可以用existingXxx的命名格式,比如existingUser,后续判断逻辑读起来和自然语言几乎一致:
const existingUser = userList.find(user => user.name === targetName); if (!existingUser) { // 处理用户不存在的逻辑 } // 后续直接操作existingUser即可
几个避坑点
- 不要用
res、data、result这类无场景信息的泛称 - 不要和原数组的命名过于接近,比如数组叫
users就尽量不要把返回值也命名为user,短作用域下还好,代码一长很容易和循环变量、其他用户实例混淆 - 不要为了短牺牲语义,多打两三个单词换后续维护的效率非常划算
内容的提问来源于stack exchange,提问作者user17620914
相关产品推荐
相关产品推荐

