未定义值时增加属性的值

时间:2018-06-07 09:37:28

标签: javascript

我正试图以这种方式为属性添加一个值,但我似乎无法弄清楚如何以正确的方式做到这一点

let test = {}
test["Hi"] = 0 // would be inside a loop, so unless I add a check to see if "Hi" is a valid key in the object
test["Hi"] += 1 // What I want to happen

let test2 = {} // what I thought would work
test2["Hi"] += 1 || 0

console.log(test2) -- {Hi: NaN}

2 个答案:

答案 0 :(得分:2)

test2["Hi"] += 1 || 0你要求做的是:如果你可以把test2 [“Hi”]的值(test2 [“Hi”] + 1) - 这样做。否则,将test2的值设为[“Hi”] + 0。在您的情况下,test2 [“Hi”]未定义,因此两个选项都返回NaN。如果您要做的是test2 [“Hi”] + = 1 OR test2 [“Hi”] = 0,您可以用其他方式完成,

像:

    test2["Hi"] = test2["Hi"] + 1 || 0;

OR

    test2["Hi"] = test2["Hi"] ? test2["Hi"] += 1 : 0;

根据您的喜好。 希望它的帮助

答案 1 :(得分:0)

@leak ,目前我建议您使用以下方法。稍后,我会考虑你的方法并更新答案。

  

如果您对改进有任何建议,请发表评论。

var test2 = {};
test2["Hi"] = test2["Hi"] != undefined? test2["Hi"] + 1:0
console.log(test2) //{Hi: 0};

test2["Hi"] = test2["Hi"] != undefined? test2["Hi"] + 1:0
console.log(test2) //{Hi: 1};

test2["Hi"] = test2["Hi"] != undefined? test2["Hi"] + 1:0
console.log(test2) //{Hi: 2};