JavaScript对象字符串插值:如何用循环变量替换属性路径占位符
解决方案:用循环变量替换字符串中的占位符
当然可以实现!你只需要把循环变量i插入到字符串对应的位置就行,有两种常用的方法,都很简单:
方法1:ES6模板字符串(推荐)
模板字符串用反引号()包裹,变量可以直接用${变量名}`的形式插入,代码可读性更高:
getMessages() { for (let i = 0; i < this.numberOfMessages; i++) { // 如果你需要MSG从1开始编号(比如MSG1、MSG2),就把${i}改成${i + 1} this.messages.push({ label: `CUSTOMER.MESSAGE_CHOICE.MSG${i}.LABEL`, value: `CUSTOMER.MESSAGE_CHOICE.MSG${i}.VALUE` }); } }
方法2:传统字符串拼接
如果需要兼容更老的浏览器,可以用+运算符把字符串和变量拼接起来:
getMessages() { for (let i = 0; i < this.numberOfMessages; i++) { // 同样,需要从1开始的话就用i + 1 this.messages.push({ label: "CUSTOMER.MESSAGE_CHOICE.MSG" + i + ".LABEL", value: "CUSTOMER.MESSAGE_CHOICE.MSG" + i + ".VALUE" }); } }
小提醒
如果你的消息编号是从MSG1开始而不是MSG0(因为循环变量i默认从0起步),记得把代码里的i改成i + 1,这样第一次循环就会生成MSG1而不是MSG0啦。
内容的提问来源于stack exchange,提问作者Jan Kowalski
相关产品推荐
相关产品推荐

