일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- ambiguous function description
- ethers typescript
- ethers v6
- chainlink 설명
- ethers websocket
- 러스트 기초 학습
- 깃허브명령어
- ethers type
- 스마트컨트렉트 예약어 함수이름 중복
- 스마트컨트렉트 함수이름 중복 호출
- Vue.js
- 체인의정석
- multicall
- 프록시배포구조
- Vue
- 스마트컨트렉트프록시
- nest.js설명
- 스마트 컨트렉트 함수이름 중복
- 러스트기초
- vue기초
- 스마트컨트렉트테스트
- 컨트렉트 배포 자동화
- 러스트 기초
- SBT표준
- 컨트렉트 동일한 함수이름 호출
- git rebase
- ethers
- rust 기초
- 머신러닝기초
- nestjs 튜토리얼
Archives
- Today
- Total
체인의정석
javascript 객체에 key, value 값 추가하기 본문
728x90
반응형
객체에 key, value값 추가하기를 찾아보다가 좋은 링크를 발견했다.
출저 : https://stackoverflow.com/questions/1168807/how-can-i-add-a-key-value-pair-to-a-javascript-object
Conclusions
- fastest mutable solutions are much faster than fastest immutable (>10x)
- classic mutable approach like obj.key3 = "abc" (MA,MB) is fastest
- for immutable solutions the {...obj, key3:'abc'} and Object.assign (IA,IB) are fastest
- surprisingly there are immutable solutions faster than some mutable solutions for chrome (MC-IA) and safari (MD-IB)
여러 함수가 있지만 속도는 클래식한 함수가 가장 빠르다고 한다.
객체.키값 = "value" 또는
객체['키값']= "value" 이다.
무조건 속도를 빠르게 해야하는 상황이므로 (크롬기준) MA 방식으로 추가해야 겠다.
위 링크에서 가져온 소스코드
var o = {
key1: true,
key2: 3,
};
var log= (s,f)=> console.log(`${s} --> ${JSON.stringify(f({...o}))}`);
function MA(obj) {
obj.key3 = "abc";
return obj;
}
function MB(obj) {
obj['key3'] = "abc";
return obj;
}
function MC(obj) {
Object.assign(obj, {key3:'abc'});
return obj;
}
function MD(obj) {
Object.defineProperty(obj, 'key3', {
value: "abc", // undefined by default
enumerable: true, // false by default
configurable: true, // false by default
writable: true // false by default
});
return obj;
}
function IA(obj) {
return {...obj, key3:'abc'};
}
function IB(obj) {
return Object.assign({key3:'abc'}, obj);
}
function IC(obj) {
let ob= JSON.parse(JSON.stringify(obj))
ob.key3 = 'abc';
return ob;
}
function ID(obj) {
let ob= Object.fromEntries(Object.entries(obj));
ob.key3 = 'abc';
return ob;
}
function IE(obj) {
return Object.fromEntries(Object.entries(obj).concat([['key3','abc']]))
}
log('MA',MA);
log('MB',MB);
log('MC',MC);
log('MD',MD);
log('IA',IA);
log('IB',IB);
log('IC',IC);
log('ID',ID);
log('IE',IE);
728x90
반응형
'개발 > backend' 카테고리의 다른 글
블록체인 트랜잭션 데이터 처리할 때 Promise.all 과 Promise.resolve 를 같이 써서 속도 최적화 시키기 (0) | 2023.02.23 |
---|---|
개발자를 위한 CHAT GPT사용 예시 (0) | 2023.02.14 |
port is already in used , 포트 죽이기 (업데이트) (0) | 2022.12.09 |
Javascript) map에 Promise.all을 적용하여 동기화 시키기 (0) | 2022.11.18 |
pm2 명령어 리스트 및 활용 케이스 정리 (업데이트) (0) | 2022.11.16 |
Comments