[Javascript]Object.keys(), values, entries, assign



keys()、values()、entries()を使用できるデータ構造は、次のとおりです.
. Map
. Set
. Array
通常のオブジェクトにはkeys()、values()、entries()などの順序に関連する方法もあります.
との文法に違いがあります.
Object.keys,values,entries
次の方法は、一般オブジェクトに適用されます.
. Object.キー(obj)オブジェクトのみを含む配列を返します.
. Object.値(obj)オブジェクト値のみを含む配列を返します.
. Object.entries(obj)-キー、値のペアを含む配列を返します.
        맵 				객체
構文マッピングを呼び出します.keys() Object.keys(obj)(obj.keys()ではありません)
戻り値iterableオブジェクト「真」配列
最初の違いはobjです.keys()のオブジェクトではありません.keys(obj)を呼び出します.
このような異なる文法は柔軟性のためです.JavaScriptでは、複雑なデータ構造全体がオブジェクトに基づいていることはよく知られています.したがって,オブジェクトデータ自体がデータである.values()というメソッドを実装して使用する場合があります.このカスタムメソッドが実装されていても、Object.メソッドを値(data)で呼び出すことができる場合は、カスタムメソッドと組み込みメソッドを使用します.
2つ目の違いはメソッドオブジェクトです.*「呼び出しは、iterableオブジェクトではなくオブジェクトのタイプである配列を返します.」真の配列を返すのは、互換性がないためです.
let user = {
	name: "john",
	age: 30
};
Object.keys(user) = ["name, "age"]
obJect.values(user) = ["john",30]
Object.entries(user) = [["name","john"],["age",30]
次の例に示すように、Object.valuesを使用すると、Property値に対して任意の操作を実行できます.
let user = {
	name: "violet",
	age: 30
}

//값을 순회합니다.

for(let value of Object.values(user)){
	alert(value); //Violet과 30이 연속적으로 출력됨
}
Object.keys、values、entriesは、構成部品のプロファイルを無視します.
for ..複文のようにobjectkeys,object.values,Object.Entriesは、キーが構成部品のプロパティであることを無視します.通常、計算対象に構成部品キーを含めることは推奨されませんが、構成部品キーが必要な場合は、構成部品キーをアレイ形式のメソッドObjectに戻すしかありません.getownPropertySymbolsを使用します.
getownPropertySymbolsに加えて、Reflectメソッドで鍵全体を返すこともできます.ownKeys(obj)も使用できます.
オブジェクトの変換
オブジェクトのマッピングやフィルタなどのアレイメソッドのみは使用できません.
ただしobjectエントリとオブジェクト.fromEntryを順番に適用する場合、オブジェクトは配列専用メソッドを使用することもできます.適用方法は次のとおりです.
1.object.entries(obj)を使用して、オブジェクトのキー値ペアが要素の配列であることを取得します.
2.1で作成されたアレイには、mapなどのアレイ固有の方法が適用されます.
3.2で返される配列内のオブジェクト.fromEntry(array)を適用して配列をオブジェクトに返します.
この方法を使用して、価格情報を格納するオブジェクトの価格のプロパティ値を2倍にします.
let prices= {
	banana:1,
	orange:2,
	meat:4,
};
/////////////////
let doublePrices = object.fromEntries(
object.entries(prices).map(([key,value])) => [key,value*2])
);
alert(doublePrices.meat); // 8

今は難しいかもしれませんが、上記の方法を1~2回適用すると、アレイ固有の方法だけをオブジェクトに適用するのが容易になります.