JavaScript里方括号[]的使用

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

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这个字符串的值。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JavaScript中的对象是一种复合数据类型,它可以存储多个键值对,每个键值对表示一个属性。对象可以通过字面量、构造函数等方式创建,例如: ```javascript // 使用字面量创建对象 const person = { name: '张三', age: 20, gender: '男' }; // 使用构造函数创建对象 function Person(name, age, gender) { this.name = name; this.age = age; this.gender = gender; } const person2 = new Person('李四', 22, '男'); ``` 对象的属性可以通过点号或方括号来访问,例如: ```javascript console.log(person.name); // 输出:张三 console.log(person['age']); // 输出:20 ``` 对象的属性可以动态添加、修改和删除,例如: ```javascript person.job = '程序员'; // 添加属性 person.age = 21; // 修改属性 delete person.gender; // 删除属性 ``` 对象还可以嵌套使用,例如: ```javascript const company = { name: 'ABC公司', employees: [ { name: '张三', age: 20 }, { name: '李四', age: 22 } ] }; console.log(company.employees[0].name); // 输出:张三 ``` 除了访问对象的属性,还可以通过对象的方法来实现一些功能,例如: ```javascript const calculator = { add: function(a, b) { return a + b; }, subtract: function(a, b) { return a - b; } }; console.log(calculator.add(1, 2)); // 输出:3 console.log(calculator.subtract(4, 3)); // 输出:1 ``` 总的来说,JavaScript中的对象是一种非常重要的数据类型,可以存储多个键值对,支持动态添加、修改和删除属性,还可以嵌套使用和定义方法,是实现复杂功能的重要工具之一。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值