gpt4 book ai didi

javascript - 带有 javascript 对象的三元表达式

转载 作者:行者123 更新时间:2023-11-30 13:49:03 25 4
gpt4 key购买 nike

假设我有以下 javascript 对象:

var __error__ = {0: 'ok'}

如果键不在 obj 中,我想返回一个空字符串,否则返回一条错误消息。例如:

var value = __error__[col_num] ? "The value cannot be converted" : ""

如何用三元表达式正确地做到这一点?我需要做 __error__[col_num] == undefined 吗?或者上面的表达式本身评估为 false

最佳答案

如果您只想检查它们的键是否存在于对象中,而不是检查值是否为 false,您应该使用 in operator

var value = col_num in __error__ ? "The value cannot be converted" : ""

您还可以使用 Object.hasOwnProperty仅当对象具有该属性时才返回 true(如果继承了该属性,则返回 false)。

这里有几个例子来说明差异

var parent = {
foo: undefined
};

var child = Object.create(parent);

console.log("foo" in parent); // parent has the "foo" property
console.log("foo" in child); // child has the "foo" property

console.log(parent.hasOwnProperty("foo")); // parent has the "foo" property
console.log(child.hasOwnProperty("foo")); // child has the "foo" property but it belonds to parent

console.log(child.foo !== undefined); // the foo property of child is undefined
console.log(!!child.foo); // the troothy of undefined is false

console.log(parent.foo !== undefined); // the foo property of parent is undefined
console.log(!!parent.foo); // the troothy of undefined is false

关于javascript - 带有 javascript 对象的三元表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58663633/

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