1. slice()
number1 을 삭제하지 않은 상태로 값을 복사
let number1 = [1,2,3];
let number2 = number1.slice()
2. for( in)
빈 객체를 생성후 for in 문으로 각 프로퍼티들을 넣어준다
let user1 = {
name : "suna",
age : 28
}
let user2 = {};
for(let key in user1){
user2[key] = user1[key];
}
3. function
위의 코드를 함수로 만들면 아래와 같다
function clone(object){
let user2 = {};
for(let key in user1){
user2[key] = user1[key];
}
return result;
}
let user1 = {
name : "suna",
age : 28
}
let user2 = clone(user1);
다만 아래의 경우 user1 에 객체가 있을 경우
예를들어
user1 = {like : ["apple", "banana"]}
일 경우 주소값이 복사되는데 이는 아래의 코드로 수정하면 해결된다.
function clone(object){
if(object === null || typeof object !== "object")
return object;
let temp;
if(Array.isArray(object)){
temp=[];
}else{
temp={}
}
for (let key of Object.keys(object)){
temp[key] = cloneObject(object[key])
}
return temp;
}
let user1 = {
name : "suna",
age : 28
}
let user2 = clone(user1);
'develop > script' 카테고리의 다른 글
얕은복사 & 깊은복사 (0) | 2023.10.19 |
---|---|
배열의 특정 값 찾기 - find(), filter() (0) | 2023.10.19 |
변수 상수 (0) | 2023.10.12 |
문자열 찾기 (0) | 2023.10.12 |
Math메소드 외 소수점 처리 방법 _ toFixed() (0) | 2023.10.12 |