1.object.is()は、2つの値が等しいか否かを判断します
<スクリプトタイプ= " テキスト/ javascriptの" > のvar FLAG1 =オブジェクト。である(' FOO '、' FOO ' )。 console.log(FLAG1)。// 真のvar FLAG2 =オブジェクト。です('' 、'' )。 console.log(FLAG2)。// 真のvar FLAG3 =オブジェクト。です({}、{})。 console.log(FLAG3)。// 偽のvar FLAG4 =オブジェクト。である(0、 - 0
)。 console.log(FLAG4)。// 偽 のvar flag5 =オブジェクト。ある(NaNでは、NaN)。// 真 にconsole.log(flag5) </スクリプト>
合わせたオブジェクトの2.Object.assign()メソッドは、対象物(ターゲット)にコピーされ、すべての列挙属性のソースオブジェクト(ソース)。
Object.assign
最初のパラメータは、ソース・オブジェクトのパラメータが後ろにあり、ターゲット・オブジェクトのメソッドです。
ソースオブジェクトとターゲットオブジェクトは、同じ名前、または同じname属性のソースオブジェクトの複数の属性を持っている場合、属性の後に以前の属性を上書きすることに注意してください。
<スクリプトタイプ= " テキスト/ javascriptの" > / * * object.asign() * / VARの 目標 = {名:" 小米" }。 VARの ソース1 = { 年齢:23 、 性別:1 、 名前:" 暁明" }; VaRの ソース2 = {父:" 大の明" }。 console.log(Object.assign(ターゲット、ソース1、ソース2)); // {名: "暁明"、年齢:23、性別:1、父: "大の明"}
</ SCRIPT>
3. Object.keys()、Object.values()、Object.entries()
Object.keys方法は、配列を返し、オブジェクト自体のメンバーは、キーパラメータ(継承されない)全てのトラバース(可算)属性です。
VAR OBJ = {FOO:' バー'、バズ:42 }。 Object.keys(OBJ) // [ "foo"という、 "バズ"]
ES2017は、で導入Object.keys
のサポートObject.values
とObject.entries
のために、オブジェクトを横断するサプリメントとしてfor...of
リサイクル。
{キー、値、エントリ} =せてオブジェクト。 OBJせ {:= 1、B:2、C:3 }。 用{(キーのキー(OBJ)とする) はconsole.log(キー)。// ''、 'B'、 'C' } のための{(値の値(OBJ)とする) はconsole.log(値)。// 1、2、3 } のための{(エントリの[キー値](OBJ)とする) はconsole.log([キー、値])。// [ 'A'、1]、[ 'B'、2]、[ 'C'、3] }
Object.values
この方法は、配列を返し、オブジェクト自体のメンバーは、パラメータ(継承されない)全てのトラバース(可算)キー属性です。
CONST OBJ = {FOO:' バー'、バズ:42 }。 Object.values(OBJ) // [ "バー"、42]
セクションで説明するルールと一致するメンバーの配列の並び順、及び「越え属性」の章を返します。
CONST OBJ = { 100:' A '、2:' B '、7:' C ' }。 Object.values(OBJ) // [ "B"、 "C"、 "A"]
配列を返すように上記のコードでは、と呼ばれる属性値は、小から大横断に、大きさに応じた値ですb
、c
、a
。
Object.values
オブジェクト自体はプロパティを横切ることができる返すだけです。
場合Object.values
メソッドのパラメータは文字列で、各文字の配列を返します
Object.values(' FOO ' ) // [ 'F'、 'O'、 'O']
パラメータがオブジェクトでない場合、Object.values
それは最初にそのオブジェクトをオンにします。オブジェクトおよび包装ブール値の値は、非継承プロパティの例として、追加されません。したがって、Object.values
それは空の配列を返します。
Object.values(42)// [] Object.values(真)// []
Object.entries()
この方法は、配列を返し、オブジェクト自体のメンバーは、パラメータ(継承されない)全てのトラバース(可算)キー属性アレイです。
CONST OBJ = {FOO:' バー'、バズ:42 }。 Object.entries(OBJ) // [[ "foo"という、 "バー"]、[ "バズ"、42]]
Object.entries
基本的な目的は、オブジェクトの属性を横断することです。
せOBJ = {1:1、2:2 }。 用{([K、V] Object.entriesの(OBJ)とする) はconsole.log( $ {JSON.stringify(V)} `` $ {JSON.stringify(K)} ;) } // "1":1 // "2":2
Object.entries
別の有用な方法は、実際にオブジェクトということであるMap
構造。
CONST OBJ = {FOO:' バー'、バズ:42 }。 constのマップ= 新しい地図(Object.entries(OBJ)); マップ// 地図{FOO: "バー"、バズ:42}
Object.fromEntries()
方法は、Object.entries()
キー配列にオブジェクトの逆の動作。
Object.fromEntries([ [ ' FOO '、' バー' ]、 [ ' バズ'、42 ] ]) // {FOO "バー"、バズ:42}
// 一例 constのエントリ= 新しい地図([ [ ' FOO '、' バー' ]、 [ ' バズ'、42 ] ]); Object.fromEntries(エントリー) // {FOO: "バー"、バズ:42} // 二例 のconstマップ= 新マップ()。セット(' FOO '、真)。セット(' バー'、偽の); Object.fromEntries(マップ) // {FOO:真、バー:偽}