2017-12-11 29 views
0

からキーと値が、私は今、私は長さの配列のキーと値が配列の値となります4印刷配列

[ [a,5], [b,3], [c,7] , [d,8] ] 

を取得します

let sample = {a:5, b:3 , c:7, d:8} 
Object.entries(sample) 

のようなオブジェクトを持っています。

今は値を出力する必要が値5

  • bは3
  • cは値7
  • Dが値8
  • を保持する保持値を保持する保持
    • として

    答えて

    1

    解決策が見つかりました:

    let sample = {a:5, b:3, c:7, d:8}; 
    for (const [key,value] of Object.entries(sample)) { 
        // return whatever you need 
        console.log(`${key} holds the value ${value}`) 
    } 
    

    これで問題が解決されることを願っています。

    +0

    はい、これは正しいアプローチです。 – Bergi

    1

    投稿した回答は技術的には正解ですが、最も現代的なブラウザでのみ機能します。

    たとえば、Object.entriesは、任意のバージョンのIEではサポートされていません。どちらもfor...ofです。 let statementには少なくともIE11が必要です。

    古いブラウザで実行しているコードを気にする場合は、たとえば次のようにします。 forEachの代わりにObject.entriesの代わりにObject.keysと...の代わりにvarの代わりに。

    このコードでは、同じことを行うだけでなく、IE9に細かい動作します:

    var sample = {a:5, b:3 , c:7, d:8}; 
     
    var keys = Object.keys(sample); 
     
    
     
    keys.forEach(function(key){ 
     
        console.log(key + " holds the value " + sample[key]); 
     
    });

    とにも上記のコードは、あなたの好みのためにあまりにも現代的であれば、あなたがのために行くことができます次のアプローチ:

    var sample = {a:5, b:3 , c:7, d:8}; 
     
    
     
    for (var key in sample) { 
     
        console.log(key + " holds the value " + sample[key]); 
     
    }

    そのコードはIE6でも機能します!

    +0

    しかし、 'Object.keys'と' forEach'と文字列の補間は、古いブラウザでは動作しません...単純な 'for(サンプル中のvarキー){console.log(key +"は値 " [key])} 'loop – Bergi

    +0

    @Bergi:あなたの修正をありがとう。私は文字列補間について忘れていましたが、それに応じてコードを修正しました。私はIE6でも動作するはずの 'for ... in'に基づいて2番目のバージョンを追加しました。最初の答えで「for ... in」と言わなかったのは、私が[**この号**](https://blog.javascripting.com)の結果としてそれを避けることを学んだからです。/2014/09/19/when-should-javascript-developers-use-hasownproperty /)。私は私の雇用者でIE <9をサポートする必要はないので、私は 'for ... in' +' obj.hasOwnProperty'の代わりに 'Object.keys' +' forEach'を使いました。私のコード。 –

    +0

    私は同意しません。私たちは、 'Object.prototype'が列挙可能なプロパティで拡張されていないと仮定しなければなりません。 ['obj。hasOwnProperty(...) 'が間違っているので使用しないでください](https://stackoverflow.com/a/45014721/1048572)。 – Bergi