json에서 키값으로 접근하여 remove하고 싶을때가 생긴다.

왜 난 delete 문법을 모르고 지금까지

for문을 돌며 key값 뽑아내고 key값으로 다시 접근해서 remove하고 있던걸까...

 

단, 배열에서는 delete를 해도 해당 인덱스의 값이 empty로 되지만 배열의 길이는 그대로 3이다.

let json = {
    "key1" : "value1",
    "key2" : "value2",
    "key3" : "value3"
}


delete json["key1"];

console.log(json);
// {key2: "value2", key3: "value3"}
console.log(Object.keys(json).length);
// 2

//단, 배열에서는
let arr = [0,1,2]
delete arr[0]; 
console.log(arr) 
// [1,2]
console.log(arr.length) 
// 3

 

Javascript에서 JSON을 사용하다보면 key값이 아닌 index로 접근해야할 경우가 종종 생긴다.

필자는 JSON의 key값에 넘버링이 되어 있고, 특정 체크박스가 체크되면

해당 넘버링된 key값의 값을 바꾸어야 하는 상황이었다.

let JSON = {
        Rule1 : "N",
        Rule2 : "N",
        Rule3 : "N",
 };
 
 let index = [];
 for (let x in JSON) { 
 	index.push(x); 
 }
 index.sort(function (a, b) {
 	return a == b ? 0 : (a > b ? 1 : -1);
 });

for(let i = 0; i<3; i++){
	console.log(JSON[index[i]]);
}
		

+ Recent posts