0
for (var key in validation_messages) {
 var obj = validation_messages[key];
 for (var prop in obj) {
  if(obj.hasOwnProperty(prop)){
  alert(prop + " = " + obj[prop]);
  }
 }
}

これは私が持っている for ループですが、昇順で応答を取得しています。しかし、降順で必要です。誰かが私を助けることができますか?

ありがとう

4

2 に答える 2

2

JavaScript は特定のオブジェクト プロパティの順序を保証しません。これを参照してください: JavaScript はオブジェクト プロパティの順序を保証しますか?

特定の順序が必要な場合は、配列を使用する必要があります。

それらが配列にある場合、コードは次のようになります(fiddle: http://jsfiddle.net/DH3VQ/1/ ):

var props = [
    { key:"p1", value:"a"},   
    { key:"p2", value:"b"},   
    { key:"p3", value:"c"},   
];

for (var i = 0; i< props.length; i++){
    alert(props[i].key + " = " + props[i].value);
}   

または、もっと凝ったことをすることもできます:

   props.forEach(function(prop){alert(prop.key + " = " + prop.value)});

しかし、標準の for はおそらくより移植性があります。

于 2013-11-04T23:24:25.963 に答える