Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如果对象中的键相同,则添加值_Javascript_Object_Key_Key Value - Fatal编程技术网

Javascript 如果对象中的键相同,则添加值

Javascript 如果对象中的键相同,则添加值,javascript,object,key,key-value,Javascript,Object,Key,Key Value,如果我添加到此对象,例如obj.bob=“12”, 有没有办法把它添加到bob:26而不是用bob:12替换? 多谢各位 所以,你用这种方式 var obj = { bob : 14 jan : 2 } 所以,你用这种方式 var obj = { bob : 14 jan : 2 } var obj={ 鲍勃:14, 1月2日 } obj.bob+=12; console.log(obj.bob) var obj={ 鲍勃:14, 1月2日 } obj.bob+=12; console.l

如果我添加到此对象,例如obj.bob=“12”, 有没有办法把它添加到bob:26而不是用bob:12替换? 多谢各位

所以,你用这种方式

var obj = {
bob : 14
jan : 2
}
所以,你用这种方式

var obj = {
bob : 14
jan : 2
}
var obj={
鲍勃:14,
1月2日
}
obj.bob+=12;
console.log(obj.bob)
var obj={
鲍勃:14,
1月2日
}
obj.bob+=12;

console.log(obj.bob)
您可以使用ES6功能

代理
对象用于定义基本操作(例如属性查找、赋值、枚举、函数调用等)的自定义行为

var obj={bob:14,jan:2},
p=新代理(obj{
设置:功能(目标、道具、值){
目标[道具]=(目标[道具]| | 0)+值;
}
});
p、 bob=10;
console.log(p.bob);//24
p、 简=42;

console.log(p.jane);//42
您可以使用ES6功能

代理
对象用于定义基本操作(例如属性查找、赋值、枚举、函数调用等)的自定义行为

var obj={bob:14,jan:2},
p=新代理(obj{
设置:功能(目标、道具、值){
目标[道具]=(目标[道具]| | 0)+值;
}
});
p、 bob=10;
console.log(p.bob);//24
p、 简=42;

console.log(p.jane);//42
简单且几乎肯定正确的答案是使用,它将右操作数与左操作数相加

var obj = {
bob : 14,
jan : 2
}

obj.bob += 12;

console.log(obj);
您可能需要一个系统,在该系统中,将属性设置为实际将值添加到属性的现有值中。这似乎令人困惑,也不太可能有帮助,但在技术上可以使用:


但是,我不敢相信这可能是理想的行为。

简单且几乎肯定正确的答案是使用,它将右操作数与左操作数相加

var obj = {
bob : 14,
jan : 2
}

obj.bob += 12;

console.log(obj);
您可能需要一个系统,在该系统中,将属性设置为实际将值添加到属性的现有值中。这似乎令人困惑,也不太可能有帮助,但在技术上可以使用:


然而,我不相信这可能是理想的行为。

增加当前值
obj.bob+=12
obj.bob=obj.bob?obj.bob+12:+12
增加当前值
obj.bob+=12
obj.bob=obj.bob?obj.bob+12:+12
我应该更仔细地阅读,这正是OP想要的。这可以在没有使用setter和getter的代理的情况下完成。我应该更仔细地阅读,这正是OP想要的。这可以在没有使用setter和getter的代理的情况下完成。如何处理新属性?@NinaScholz问题中的对象文本中指定了初始值。这反映了这一点。如何处理新属性?@NinaScholz问题中的对象文本中指定了初始值。这反映了这一点。