これは、transitions配列の両方の値が同じオブジェクトを指しているためです。コードの実行中に、3つの異なる参照(、、、および)を持つ1つのオブジェクトを生成transitionInitialしtransistions[0]ますtransistions[1]。
ループの最初の反復中に、はオブジェクトtransistions[0]を参照するように設定されtransitionInitialます。次に、propertyそのオブジェクトのプロパティが値に設定されます"color"。2回目の反復では、およびとtransitions[1]同じオブジェクトを参照するように設定されます。次に、の値をにリセットします。transitionInitialtransitions[0]property"background-color"
これを解決するには、配列インデックスごとに異なるオブジェクトを作成します。
// Not needed anymore:
// var transitionInitial = {property: "none"};
var rules = ["color", "background-color"];
var transitions = [];
for ( var k = 0; k < rules.length; k++) {
  transitions[k] = {};
  transitions[k].property = rules[k];
  alert(transitions[0].property);
}