我在javascript中有以下变量:
var stC = {
kosten: 5,
tijd: 4,
locatie: 3,
beoordeling: 2,
garantie: 1
};
例如,如果
stC.kosten
更改为3,我想更改具有相同值的变量,在此示例中,stC.locatie
更改为stC.kosten
的旧值。因此,如果
stC.kosten
变成3,stC.locatie
变成5。或者
stC.beoordeling
变为5而不是stC.kosten
变为2。尝试搜索,但找不到任何解决问题的方法。
有谁知道我该怎么做?
最佳答案
像这样吗
var stC = { kosten: 5, tijd: 4, locatie: 3, beoordeling: 2, garantie: 1 };
function changeValue(obj, key, value){
var current = obj[key],
match = getKeyByValue(obj, value);
if(!match) return;
// swap values
obj[key] = value;
obj[match] = current;
}
function getKeyByValue(obj, value){
return Object.keys(obj).filter(function(key) {
return obj[key] === value;
})[0];
}
changeValue(stC,
'kosten', // property to change
3); // new value
http://jsfiddle.net/0vsyj603/
如果要使用此IE9之前的版本,请对Object.keys使用polyfill。