javascript - 如何使用函数向 JavaScript 对象添加属性名称和值?

标签 javascript javascript-objects

var a = "the letter a";
var obj = {};

obj.brovo = "the letter b";
obj.charlie = "the letter c";

if (!obj.alpha) obj.alpha = a;

由于我希望在代码中的不同点使用它并且将多次使用它,因此我希望将其用作以下内容:

isNotSet(obj.alpha, a);

我希望这等于obj.alpha = a;

我从以下函数开始:

function isNotSet (arg1, arg2) {
    if (!arg1) arg1 = arg2;
    return arg1;
}

最佳答案

解决方案实际上只是一句简单的话:

obj.alpha = obj.alpha || a;

如果你确实需要一个函数,你可以包装它:

function isNotSet(obj, arg1, arg2) {
    obj[arg1] = obj[arg1] || arg2;
}

但是,您应该意识到,如果 obj[arg1] 设置为 false (或任何其他虚假的值),则此解决方案和您建议的解决方案都将覆盖该值值)。

如果您想正确处理这些值,最简单的方法是:

function isNotSet(obj, arg1, arg2) {
    if(typeof obj[arg1] !== "undefined" && obj[arg1] !== null) { return; }
    obj[arg1] = arg2;
}

关于javascript - 如何使用函数向 JavaScript 对象添加属性名称和值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34098236/

相关文章:

javascript - 如何在 Firefox 上使用 Java WebDriver 中的 js 变量

javascript - 使用 jQuery/JS 打开时,使 <details> 标签的内容具有动画效果

javascript - 如何在 lodash 中创建具有掩盖属性的新对象?

javascript - 总结给定级别的树(嵌套对象)

javascript - 从 promise 导出数组,但在另一个文件需要时不加载?

javascript - jQuery:页面文本不可选择

javascript - 在 JavaScript 中读取本地文本文件

javascript - 即使包含下划线后仍然未捕获 TypeError

javascript - 操纵对象结构

javascript - BitGO - 从对象数组中获取帐户和值(value)