2014-11-17 56 views
2

我在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.

曾試圖尋找,但未能找到任何解決問題。

有誰知道我該怎麼做?

+2

沒有什麼神奇的,將做到這一點,你只需要編寫代碼 – Jamiec

回答

1

是這樣的?

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

+0

不知道爲什麼你有downvote - 作爲實際提供工作解決方案的唯一答案,該解決方案適用於所有瀏覽器。 – Jamiec

+0

@Jamiec看起來像有人接受了downvote狂歡:)是的,與'Object.keys'墊片肯定會在所有瀏覽器中工作。 – filur

+0

Thnx!像魅力一樣工作! – deruiter2

0
stC.prototype = 
{ 
    setKosten : function(value) 
    { 
     this.kosten = value; 
     this.locatie = whatever; 
    } 
};