gpt4 book ai didi

Javascript 使用 "typeof"控制多种类型,不使用 "if"

转载 作者:行者123 更新时间:2023-12-02 18:30:43 25 4
gpt4 key购买 nike

我想知道是否有经典的替代品。

if (typeof firstPost === 'object' && typeof firstPost.active === 'boolean' && typeof firstPost.message === 'string' && typeof firstPost.maxHeight)

以避免编写更多代码,可能是循环对象。

最佳答案

我会用这个:

如果这是用户输入

var firstPost = {
active : true,
message : "hello",
maxHeight : 20
}

然后:

var checks = {
active : 'boolean',
message : 'string',
maxHeight : 'number'
}

try {
for(var key in checks) {
if(typeof firstPost[key] != checks[key]) {
throw new Error(key + " is not " + checks[key]);
}
}
}catch(e) {
alert(e.toString());
}

这不是无字节的,但它更干净。 (它还检查是否定义了所有键)

编辑:没有比这更紧凑的方法了。但是您可以在其他地方声明某个函数并调用它。

function checkObject(obj,checks) {
for(var key in checks) {
if(typeof obj[key] != checks[key]) {
return false;
}
}
return true;
}

简单

checkObject(firstPost,{
active : 'boolean',
message : 'string',
maxHeight : 'number'
});

您可以详细说明另一个返回类型以指定错误。

关于Javascript 使用 "typeof"控制多种类型,不使用 "if",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17828929/

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