ホームページ  >  記事  >  ウェブフロントエンド  >  Vueのオブジェクト内で属性が非負の整数になる問題を解決する方法

Vueのオブジェクト内で属性が非負の整数になる問題を解決する方法

不言
不言オリジナル
2018-07-14 15:35:351963ブラウズ

この記事では、Vue の for オブジェクトに特定の参照値がある場合の非負の整数の問題を解決する方法を主に紹介します。 request オブジェクト内の for の場合、オブジェクトの属性はすべて数値です

しかし、このオブジェクトにデフォルトの属性と値を追加したいと考えています

元のオブジェクトは {5446:"Guangzhou City"} です。 。 。 。 。次のようなものです

次に、ページに「Select City」というデフォルト値を表示したいです

次に、オブジェクトの先頭に {"":"Select City"} を追加します

しかし、現実はそうではありません思ったとおり、このオブジェクトをループして、下部ではなく上部の都市を選択しましたが、明らかに私のオブジェクトは {"":"Select City",5446:"Guangzhou City" でした。 ... ...} こんな感じ

なぜ選択した都市がリストの一番下にあるのでしょうか? そこで情報を確認してみました

そして、vue の公式 Web サイトを見てみると、in は Object.keys でソートされています。

Object.keysとfor ...inは同じです(この文に問題があるかは分かりません)

それでコンソールでデモしてみました

var a={"":"123",name:"wenwen"}
for(var i in a){console.log(i)}
"" 
name

普通に表示されました

すると何か変です属性が負でない場合に発生しました 整数が整数の場合に何が起こりますか

問題は見つかりましたか?思っていたのと違うんです "" 123 12 がこのように出力されました

そして、情報を確認して見つけました


これらは、まず parseFloat 値がすべてのキーの非負の整数である属性を抽出し、次にそれらを比較します番号順 最初に属性の並べ替えが実行され、次に残りのすべての属性がオブジェクトによって定義された順序で実行されます。他のブラウザは、オブジェクトが定義されている順序どおりにプロパティを走査します。

新しいバージョンの属性トラバーサル順序の説明は以前のバージョンとは異なります。そのため、ECMA-262 第 3 版仕様に準拠して実装された JavaScript 解析エンジンは、第 5 版とは異なる方法で for-in ステートメントを処理します。実装された解析エンジンには属性の走査順序に矛盾があります

以上がこの記事の全内容です。その他の関連コンテンツについては、ご注目ください。 PHP中国語ウェブサイトです! 関連する推奨事項:

vue に基づくモバイル Web ミュージック プレーヤーの実装

ネイティブ JS を使用して Ajax を実装する方法

以上がVueのオブジェクト内で属性が非負の整数になる問題を解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。