第2週-3配列、オブジェクト
整列
mutable vs immutable
かへんかんすう
splice
sort
reverse
push/pop
shift/unshift
ふへんかんすう
filter
map
slice
オブジェクト
オブジェクトの読み取りと書き込み
.(ピリオド)演算子
let user = {
name: "John",
age: 30
};
user.name // => "John"
[]角カッコ演算子
静的鍵に近づくには、「」でバインドする必要があります.
user["name"] // => "John"
動的鍵にアクセスできるのはカッコ演算子のみです.function(obj, key){
return obj[key] //--> key가 동적으로 변하기 때문에 대괄호로 묶어준다.
// [x] obj.key / obj["key"]
}
let result = fun(obj, key)
Object.keys, values, entries. fromEntries
Object.keys(obj)-オブジェクトキーのみを含む配列を返します
Object.values(obj)-オブジェクト値のみを含む配列を返します.
Object.entries(obj)-キー、値のペアを含む配列を返します.
let user = {
name: "John",
age: 30
};
Object.keys(user) = ["name", "age"]
Object.values(user) = ["John", 30]
Object.entries(user) = [ ["name","John"], ["age",30] ]
const arr = [ ['0', 'a'], ['1', 'b'], ['2', 'c'] ];
const obj = Object.fromEntries(arr);
console.log(obj); // { 0: "a", 1: "b", 2: "c" }
オブジェクトの変換
オブジェクトはmap、filterメソッドを使用できません.したがって、エンティティを使用して配列を取得し、mapを使用し、fromEntriesを使用してオブジェクトとして再作成できます.
let prices = {
banana: 1,
orange: 2,
meat: 4,
};
let doublePrices = Object.fromEntries(
// 객체를 배열로 변환해서 배열 전용 메서드인 map을 적용하고 fromEntries를 사용해 배열을 다시 객체로 되돌립니다.
Object.entries(prices).map(([key, value]) => [key, value * 2])
);
console.log(doublePrices.meat); // 8
浅い放射
const obj = {
a: "하나",
b: {
c: "둘",
},
};
const copiedObj = Object.assign({}, obj);
obj === copiedObj // false
obj.a = "하나하나"
obj.a === copiedObj.a // false
copiedObj.b.c = "둘둘"
obj.b.c === copiedObj.b.c // true
Object.assign()は浅い放射線になる.したがって、オブジェクト内のオブジェクトは同じ参照値を有するため、objのbのcの値を変更すると、copiedobjのbのcも同じ変更値を有する.
つまり、参照値は最も外側の参照値とは異なり、オブジェクト内の参照値は同じ参照値を有します.
Reference
この問題について(第2週-3配列、オブジェクト), 我々は、より多くの情報をここで見つけました https://velog.io/@ellie12/TIL-2주차-3.-배열-객체テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol