JavaScript里方括号[]的使用

我们知道可用方括号来表示数组或者JSON对象的属性值,其实在特定场合,方括号还有妙用的。

比如我有数据源是一组JSON,其中有一个属性是时间字符串,我想对时间的小时、星期、日、月分别进行处理。每条JSON都各自生成一条新的JSON,传入参数field="hour"时,取小时,存入"hour"字段;传入参数是field="day"时,取星期,存入"day"字段,传入参数field="date"时,取日期,存入"data"字段,传入参数是field"month"时,取月份,存入"month"字段。下面是例程,用到了方括号的两种方法,还真不好用其他方式替代:

javascript 复制代码
function showchart(dataset,field,getarg,offset) {
...
let trans=dataset.map(item=>({[field]:(new Date(item.rectime))[getarg]()-offset}))
...
}
...
showchart(ds,"hour", "getHours",0)
showchart(ds,"day", "getDay",0)
showchart(ds,"date", "getDate",1)
showchart(ds,"month", "getMonth", 0)

函数里offset是一个偏移量,这里说一下JavaScript里时间相关的函数有些地方与常理有些出入,getHours()取出来的小时没有异议,getDay()星期日是0,星期一到星期六分别对应1-6,也没有毛病,getDate()出来的结果就是日期,1-31没有毛病吧,但是如果你用它的值当作数组下标的话,就没有0,还得自己再折腾转换下,我就干脆-1,从0开始,getMonth(),这个跟getDate()又不是一个逻辑了,这个一月是0,十二月是11,理解起来要加1,不过值用作数组下标的话,刚刚好。

代码里[field]你如果去掉方括号的话,就是field作为key了,而不是field的值作为key,obj[getarg](),这种表示obj对象的一个调用方法,方法名是传入参数getarg这个字符串的值。

相关推荐
從南走到北10 分钟前
JAVA东郊到家按摩服务同款同城家政服务按摩私教茶艺师服务系统小程序+公众号+APP+H5
android·java·开发语言·微信小程序·小程序
遇见尚硅谷1 小时前
C语言:20250728学习(指针)
c语言·开发语言·数据结构·c++·笔记·学习·算法
☆璇1 小时前
【C++】C/C++内存管理
c语言·开发语言·c++
愿你天黑有灯下雨有伞1 小时前
枚举策略模式实战:优雅消除支付场景的if-else
java·开发语言·策略模式
网络安全打工人1 小时前
CentOS7 安装 rust 1.82.0
开发语言·后端·rust
楚轩努力变强1 小时前
前端工程化常见问题总结
开发语言·前端·javascript·vue.js·visual studio code
梦想的初衷~2 小时前
MATLAB近红外光谱分析技术及实践技术应用
开发语言·支持向量机·matlab
前端开发爱好者2 小时前
只有 7 KB!前端圈疯传的 Vue3 转场动效神库!效果炸裂!
前端·javascript·vue.js
Fly-ping2 小时前
【前端】JavaScript文件压缩指南
开发语言·前端·javascript
铭哥的编程日记2 小时前
《C++ list 完全指南:从基础到高效使用》
开发语言·c++·list