内联JavaScript函数

内联JavaScript函数,javascript,Javascript,这里的一般问题。(在我看来)这不是一个容易被谷歌搜索到的问题,所以我想我应该在这里向人类提问,如果它被标记为复制品,那也没关系。当我写这个函数时,我突然意识到一定有一种方法可以不依赖于临时变量来写这个函数 const isHex = num => { let result = true; [...num].map(n => { if (isNaN(parseInt(n,16))) result = false; }); return result; }; 您如何内联这样

这里的一般问题。(在我看来)这不是一个容易被谷歌搜索到的问题,所以我想我应该在这里向人类提问,如果它被标记为复制品,那也没关系。当我写这个函数时,我突然意识到一定有一种方法可以不依赖于临时变量来写这个函数

const isHex = num => {
  let result = true;
  [...num].map(n => { if (isNaN(parseInt(n,16))) result = false; });
  return result;
};
您如何内联这样的函数并摆脱
结果
?我觉得这可能是我JavaScript知识的一个缺口,我很想知道答案。也许这是显而易见的,这是一个愚蠢的问题。Idk.

您可以使用并提前返回

const isHex=num=>[…num].every(n=>!isNaN(parseInt(n,16));
console.log(isHex('1a'));//真的

console.log(isHex('1#');//false
你可以这样写


isHex=num=>(!![…num].filter(n=>(isNaN(parseInt(n,16))).length)

您可以使用
.some()
而不是
.map()
。这里的术语“内联”是什么意思还不清楚;通常,这指的是语言运行时可能会做些什么来避免进行函数调用。或者
reduce
(尽管
some
是这里工作的正确工具。
reduce
如果你想重新发明轮子,可以使用)。
[…num]
num是字符串吗?如果它是一个数组,为什么要对它使用扩展运算符?是的,我使用。但是名称
num
有误导性,因此@Cerbrus它应该是一个字符串。这假设
num
是一个字符串数组,这在问题中并不清楚。问题中的代码表明
num
甚至不是数组。不,它没有意义。这是我的观点。OP代码的唯一逻辑输入是一串数字字符,这很奇怪,需要澄清。来吧。op获取一个可扩展的对象,这不是数组,因为如果是这样的话,将其放入数组中并且不对其进行任何变异是多余的。即使是
map
的(错误)使用也表明不应更改这些值。唯一有效的数据结构是字符串,它是可扩展的,不是数组或类似数组的(不包含简单字符)。至少单数
num
表示一个数字。这就是我要找的。回答得很好,尼娜。