jar*_*ada 5 javascript ternary
我有一个对象menuNames,应该维护一个菜单项列表.如果menuNames已经有slug,则递增该值,如果它不包含slug,则将值设置为等于1.我这样做是为了跟踪唯一的名字.我想最终得到类似的东西:
menuNames: {
home: 1,
products: 10,
contact: 1
}
Run Code Online (Sandbox Code Playgroud)
这不起作用(这将包含在通过每个slug的循环中):
menuNames[slug] = (menuNames.hasOwnProperty(slug) ? menuNames[slug]++ : 1);
//this sets every value to 1
Run Code Online (Sandbox Code Playgroud)
但这确实有效(这将包含在每个slug的循环中):
if(menuNames.hasOwnProperty(slug)) {
menuNames[slug]++;
} else {
menuNames[slug] = 1;
}
Run Code Online (Sandbox Code Playgroud)
menuNames[slug]++递增值,但也返回原始值.
您正在这样做menuNames[slug] =,因此在递增后将值设置回原始值.
要修复它,只需执行以下操作:
menuNames[slug] = (menuNames.hasOwnProperty(slug) ? menuNames[slug]+1 : 1);
Run Code Online (Sandbox Code Playgroud)
要么:
(menuNames.hasOwnProperty(slug) ? menuNames[slug]++ : menuNames[slug] = 1);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1196 次 |
| 最近记录: |