You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在JavaScript循环中使用变量拼接对象属性名?

用循环简化session属性赋值的正确写法

我原本重复编写了以下代码来给session赋值:

req.session.personne_1_nom = req.body.personne_1_nom;
req.session.personne_2_nom = req.body.personne_2_nom;
req.session.personne_3_nom = req.body.personne_3_nom;
req.session.personne_4_nom = req.body.personne_4_nom;

为了减少代码行数,我尝试用循环实现,但写法有问题:

for (let toto = 1; toto < 5; toto++) {
    req.session.personne_+toto+_nom = req.body.personne_+toto+_nom;
}

请问如何在代码中正确加入toto变量?


在JavaScript中,当你需要动态拼接对象属性名时,不能使用.(点语法),必须改用方括号语法。点语法只能识别固定的属性名称,而方括号允许你传入字符串形式的动态属性名。

正确的写法有两种:

写法一:先定义属性名变量(可读性更好)

for (let toto = 1; toto < 5; toto++) {
    const propName = `personne_${toto}_nom`;
    req.session[propName] = req.body[propName];
}

写法二:直接在方括号内拼接(更简洁)

for (let toto = 1; toto < 5; toto++) {
    req.session[`personne_${toto}_nom`] = req.body[`personne_${toto}_nom`];
}

两种写法都能实现目标,可根据代码复杂度选择。

内容的提问来源于stack exchange,提问作者Julie Chaumard

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 12:05:15