此处的一般JavaScript问题。 (在我看来,这不是一个容易查询的问题,所以我想我会在这里向人类提出这个问题,如果它被标记为重复,那就可以了。在我编写此函数时,我突然意识到,必须有一种不依赖于临时变量的方式来编写此函数。
const isHex = num => {
let result = true;
[...num].map(n => { if (isNaN(parseInt(n,16))) result = false; });
return result;
};
您如何内联这样的函数并摆脱result
?我觉得这可能是我的JavaScript知识上的空白,我很想知道答案。也许这很痛苦,这是一个愚蠢的问题。 Idk。
答案 0 :(得分:2)
您可以使用Array#every
并早点回来。
const isHex = num => [...num].every(n => !isNaN(parseInt(n, 16)));
console.log(isHex('1a')); // true
console.log(isHex('1#')); // false
与Array#some
相同。
const isHex = num => ![...num].some(n => isNaN(parseInt(n, 16)));
console.log(isHex('1a')); // true
console.log(isHex('1#')); // false
答案 1 :(得分:0)
您可以这样写
isHex = num => (!![...num].filter(n => (isNaN(parseInt(n, 16)))).length);