gpt4 book ai didi

javascript - 将三元运算符转换为 if

转载 作者:行者123 更新时间:2023-11-29 16:31:28 26 4
gpt4 key购买 nike

这是一个微不足道的问题,但我很难将三元运算符转换为if。这是我尝试过的。

function memoize(fn) {
const cache = {};
return (...args) => {
const stringifiedArgs = stringifyArgs(args);
const result = (cache[stringifiedArgs] = !cache.hasOwnProperty(
stringifiedArgs
)
? fn(...args)
: cache[stringifiedArgs]);
return result;
};
}

// function memoize(fn) {
// const cache = {};
// return (...args) => {
// const stringifiedArgs = stringifyArgs(args);
// return result = (if (cache[stringifiedArgs] = !cache.hasOwnProperty(stringifiedArgs)) {
// fn(...args);
// } else {
// cache[stringifiedArgs];
// })
// };
// }

最佳答案

这是我能得到的最干净的——检查属性并将内存函数的结果保存在缓存中(如果它不存在)。然后从缓存中返回它。

function memoize(fn) {
const cache = {};
return (...args) => {
const stringifiedArgs = stringifyArgs(args);

if (!cache.hasOwnProperty(stringifiedArgs)) {
cache[stringifiedArgs] = fn(...args);
}

return cache[stringifiedArgs];
};
}

您还可以在这里非常安全地使用 in 运算符:

function memoize(fn) {
const cache = {};
return (...args) => {
const stringifiedArgs = args.join(`,`); // just for testing

if (!(stringifiedArgs in cache)) {
cache[stringifiedArgs] = fn(...args);
}

return cache[stringifiedArgs];
};
}

const fib = memoize(n => n < 2 ? n : fib(n - 1) + fib(n - 2));
console.log(fib(78));

关于javascript - 将三元运算符转换为 if,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56283742/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com