将几个变量的值增加一
Increase the value of several variables by one
找不到解决方案,肯定是使用了错误的搜索词。
我想增加几个变量的值。
++swd,++sdd,++smm,++syyyy; //s 表示开始工作日等
++(swd, sdd, smm, syyyy) //试过了,不行
我是初学者,正在处理日历。
谢谢。
你不能。 ++
运算符的操作数必须是可写的——一个变量、一个对象 属性 等。(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
,然后将该结果作为整个 ()
表达式的结果
可以在 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);
找不到解决方案,肯定是使用了错误的搜索词。 我想增加几个变量的值。
++swd,++sdd,++smm,++syyyy; //s 表示开始工作日等
++(swd, sdd, smm, syyyy) //试过了,不行
我是初学者,正在处理日历。 谢谢。
你不能。 ++
运算符的操作数必须是可写的——一个变量、一个对象 属性 等。(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
,然后将该结果作为整个()
表达式的结果
可以在 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);