我正在尝试使用对象中的函数,但没有成功。
let ops = [
{'*': (a, b) => a * b},
{'/': (a, b) => a / b},
{'+': (a, b) => a + b},
{'-': (a, b) => a - b}
];
let res = [];
let current;
for (var i = 0; i < ops.length; i++) {
current = ops[i];
res = current(4, 2);
console.log(res);
}
Run Code Online (Sandbox Code Playgroud)
在不改变 的情况下ops
,您需要通过获取对象的所有值并取第一个值来将函数从对象中取出。
let ops = [
{'*': (a, b) => a * b},
{'/': (a, b) => a / b},
{'+': (a, b) => a + b},
{'-': (a, b) => a - b}
];
let res = [];
let current;
for (var i = 0; i < ops.length; i++) {
current = Object.values(ops[i])[0];
res = current(4, 2);
console.log(res);
}
Run Code Online (Sandbox Code Playgroud)
更聪明的方法是只使用数组中的函数。
let ops = [
(a, b) => a * b,
(a, b) => a / b,
(a, b) => a + b,
(a, b) => a - b
];
let res = [];
let current;
for (var i = 0; i < ops.length; i++) {
current = ops[i];
res = current(4, 2);
console.log(res);
}
Run Code Online (Sandbox Code Playgroud)