使用 && 整合事件,简化代码

15 阅读1分钟

前言

js 中 && 和 || 使用好了,有时候能够将我们的代码写的更舒服,甚至逻辑更加清晰,合理的利用他们,能让我们的代码看起来含金量更高一些

ps:当然不一定是真的含金量高很多,如果对于用习惯的来说,确实逻辑更紧密了,个人减少了很多代码和多余判断😄

&& 是返回符合条件的最后一项或不符合的第一项 || 是返回符合条件的第一项或不符合的最后一项

这里就使用 && 举个案例, || 相信遇到合适场景,自己就知道咋回事了

案例

我有一个弹窗,点击确定后,将选中内容后回调给外部,否则提示请选择数据

让ai帮我写这一块代码,是这样的,简单粗暴易懂

//pageInfo 和 onOk 已经定义好了
const onComplete = () => {
  const { dataSource, key } = pageInfo;
  if (dataSource && dataSource.length > 0 && key) {
    return Modal.info({
      title: '信息',
      content: '请选择一条数据',
    });
  }
  const record = dataSource.find(item => item.key === key);
  if (!record) {
    return Modal.info({
      title: '信息',
      content: '请选择一条数据',
    });
  }
  onOk && onOk(record);
}

下面我是这么写的,不想多写提示了,合理利用 && 会返回符合条件最后一项特性来实现,看起来似乎好了一点点

//pageInfo 和 onOk 已经定义好了
const onComplete = () => {
  const { dataSource, key } = pageInfo;
  const hasSelectedData =
    dataSource &&
    dataSource.length > 0 &&
    key &&
    dataSource.find((item) => item.key === key);  
  if (!hasSelectedData) {
    return Modal.info({
      title: "信息",
      content: "请选择一条数据",
    });
  }
  onOk && onOk(ifs.pop());
};

最后

普通的代码蕴含着我们对于代码的一些追求,你觉得什么样的代码好呢,反正我的ai感觉我的代码是屎,给我改了😄