1234

ExcelHome技术论坛

用户名  找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

帖子
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南

[分享] 利用DeepSeek学习大佬代码的一个示例

[复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2025-3-4 11:32 | 显示全部楼层
Again123456 发表于 2025-3-4 11:22
我测试c是局部,a是全局。感觉回调函数的参数是可变长度的,不会污染全局变量,挺好的。

是的,我赞同!
不过,按DeepSeek的说法,对于跨平台来说,是有“风险”的,不符合规范。

TA的精华主题

TA的得分主题

 楼主| 发表于 2025-3-4 11:49 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
Again123456 发表于 2025-3-4 11:22
我测试c是局部,a是全局。感觉回调函数的参数是可变长度的,不会污染全局变量,挺好的。

呵呵,DeepSeek再一次被打脸
Snipaste_2025-03-04_11-45-25.png

Snipaste_2025-03-04_11-48-44.png

TA的精华主题

TA的得分主题

发表于 2025-3-4 13:52 | 显示全部楼层
一江春水1688 发表于 2025-3-3 21:39
铭佬的奇思妙想,链接如下:

用VBA排序-Excel VBA程序开发-ExcelHome技术论坛 -

不要过于依赖AI了,你一开始的理解就没有错。形参是形参,你想要定义多少个都行,取决于后面传给你多少个实参,JS数组sort内部只会传两个实参给你,也就是a和b,x没有实参传进来,自然就是undefined值,且这个x作用域是当前函数环境

这里的 .sort((a,b,x) => {}) 相当于 .sort((a,b) => {let x}),是一种偷懒写法,因为JS并不强制约束你的回调函数参数个数必须一致

因为题目简单,所以写了个消遣写法(所以才用表情当变量名),正式时可不要这么用啊,形参本就是暴露给外部说明自己的用途,有他的意义。所以给自己挖坑的做法可不推荐,不然大家说铭佬带坏了风气,哈哈

评分

2

查看全部评分

TA的精华主题

TA的得分主题

发表于 2025-3-4 16:27 | 显示全部楼层
今铭昔 发表于 2025-3-4 13:52
不要过于依赖AI了,你一开始的理解就没有错。形参是形参,你想要定义多少个都行,取决于后面传给你多少个 ...

虽然是玩玩,对加深理解还是有好处的。小铭同志就是厉害

TA的精华主题

TA的得分主题

 楼主| 发表于 2025-3-4 16:42 | 显示全部楼层
今铭昔 发表于 2025-3-4 13:52
不要过于依赖AI了,你一开始的理解就没有错。形参是形参,你想要定义多少个都行,取决于后面传给你多少个 ...

感谢您的指导!
一锤定音啊,不愧神一般的存在!
加上有A佬的帮助理解,我的理解更进一步了

TA的精华主题

TA的得分主题

 楼主| 发表于 2025-3-4 17:16 | 显示全部楼层
Again123456 发表于 2025-3-4 16:27
虽然是玩玩,对加深理解还是有好处的。小铭同志就是厉害

前面不小心暴露了铭佬的另一段精彩代码,就不讨论了。不然就成话涝了。上代码:
  1. function test(){
  2.         let arr=[2025, 3, 1, 9999, 2031, 2, 0, 4]
  3.         let first1 = arr[4];//置顶
  4.         let first2 = arr[0];//置顶2
  5.         let first3 = arr[6];//沉底
  6.         arr.sort((a,b)=>{
  7.             // console.log({a, b});  //{a: a, b: b}的简化写法
  8.             return (b == first1) - (a == first1) || (b == first2) - (a == first2) || (a == first3) - (b == first3) || a - b
  9.         })
  10.         console.log(JSON.stringify(arr, null, 4))
  11. }
复制代码

TA的精华主题

TA的得分主题

 楼主| 发表于 2025-3-4 17:30 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2025-3-4 19:08 | 显示全部楼层
本帖最后由 Again123456 于 2025-3-4 19:32 编辑

哦,明白了 false -false ==0, false-true < 0,true - true ==0,true -false >0   ,二进制一样, 全忘记了

TA的精华主题

TA的得分主题

 楼主| 发表于 2025-3-5 19:46 | 显示全部楼层
Again123456 发表于 2025-3-4 19:08
哦,明白了 false -false ==0, false-true < 0,true - true ==0,true -false >0   ,二进制一样, 全忘记 ...


......
true -false >0 -> Number(true) - Number(false) -> 1 - 0 > 0
......
常见的应用,当表格排序时,表格的标题行,通常需要置顶

TA的精华主题

TA的得分主题

发表于 2025-3-5 20:15 | 显示全部楼层
本帖最后由 Again123456 于 2025-3-5 20:16 编辑
一江春水1688 发表于 2025-3-4 16:42
感谢您的指导!
一锤定音啊,不愧神一般的存在!
加上有A佬的帮助理解,我的理解更进一步了

我的理解不一定对,对于类开发来说,接口就是一个约定、规范,其实类里的函数,也有参数个数和类型的约定。而引用这个类的时候,虽然可以具体定义这个函数的功能,却必须遵守接口类的约定。
一直没精力和能力深入学习JS,感觉interface的原理应该也差不多吧,乱猜的,这个要铭佬解释一下等于是给我们上一课
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

1234

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2025-3-30 06:42 , Processed in 0.027522 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表