gpt4 book ai didi

Javascript 用于访问对象属性的语法糖

转载 作者:行者123 更新时间:2023-12-03 08:07:31 24 4
gpt4 key购买 nike

我有一个“结果”对象,我想汇集这些嵌套属性的值。

是否有一种优雅的方法来分配这两个属性的值如果它们存在,否则抛出错误?我发现自己编写了一些很长的代码来执行如此简单的操作。

谢谢

host: result["ServerCA"]["_"],
database: result["DBId"]["_"]

编辑1 - 更多信息

我的代码构造了一个具有两个属性hostdatabase 的对象。result 对象是一个包含一些信息的 JSON。我无法保证 JSON 实际上包含 ServerCA 下的这两个属性 _DBId 下的 _。事实上,我无法确定 ServerCADBId 是否会在 result 对象中定义。

因此,我尝试验证这些属性是否存在,并将它们的值分配给我自己对象的两个属性 hostdatabase

如何以最简单的方式编写此代码,而不是编写 2 个双 IF 语句?

谢谢...

最佳答案

您可以编写一个辅助函数来执行此操作,例如:

function getOrThrow(obj, keys) {
return keys.reduce(function(result, key) {
if (!(typeof result === 'object') || !(key in result)) {
throw new Error("property " + key + " does not exists");
}
return result[key];
}, obj);
}

var result = {
ServerCA: {
_: "whatever"
}
};

console.log(getOrThrow(result, ["ServerCA", "_"])); // whatever
console.log(getOrThrow(result, ["ServerCA", "_", "other"])); // throws error

关于Javascript 用于访问对象属性的语法糖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34317388/

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