无法确定解决方案,请确保使用错误的搜索词。 我想增加几个变量的值。
++ swd,++ sdd,++ smm,++ syyyy; // s是星期几等。
++(swd,sdd,smm,syyyy)//尝试过此方法,不起作用
我是初学者,正在研究日历。 谢谢。
答案 0 :(得分:1)
不能。 ++
运算符的操作数必须是可写的,例如变量,对象属性等。(swd, sdd, smm, syyyy)
的结果是不可写的(如果可以,则不是您要应用的东西) ++
至)。¹
简单地做您正在做的事情(尽管我不会使用,
来分隔它们,而我会使用;
)。
如果这些是对象的属性...
let obj = {
swd: 0,
sdd: 1,
smm: 2,
syyyy: 3
};
...您可以像这样遍历对象的属性:
for (const key of Object.keys(obj)) {
++obj[key];
}
...或ES5
Object.keys(obj).forEach(function(key) {
++obj[key];
});
...但是这会增加开销,并且可能很难阅读。
¹(swd, sdd, smm, syyyy)
的评估方式如下:
swd
,然后丢弃结果sdd
,然后丢弃结果smm
,然后丢弃结果syyyy
,然后将该结果作为整体()
表达式的结果答案 1 :(得分:0)
可以在ES6中使用arguments
变量和Destructuring assignment来完成。
请参阅下面的示例:
// Perform "callback" on all "args" and return
function performOnAll(callback, ...args) {
for (const key in args) {
if (args.hasOwnProperty(key)) {
args[key] = callback(args[key]);
}
}
return args;
}
// TEST
// Initial values
var swd = 10,
sdd = 11,
smm = 12,
syyyy = 13;
//Perform assignment
[swd, sdd, smm, syyyy] = performOnAll(function action(a) {
return a + 10;
}, swd, sdd, smm, syyyy);
// Output result
console.log(swd, sdd, smm, syyyy);