0
var obj = {
a: [1, 3, 4],
b: 2,
c: ['hi', 'there']
}
removeArrayValues(obj);
console.log(obj); // --> { b: 2 }
에서 배열 값을 제거하는 방법 내 코드입니다 :객체 여기
function removeArrayValues(obj) {
for (var key in obj){
if (Array.isArray(obj[key])) delete obj[key]
//return obj[key] -> {b: 2, c: ["hi", "there"]}
}
return obj[key]
}
는 왜 돌아 않는 경우에만 obj["a"]
및 obj["c"]
나는 for/in loop
하지 obj["k"]
내부에 반환 할 때. 이 문제를 게시하기 직전에 문제를 파악했지만 배열과 객체 모두에서이 문제를 많이 겪었으며 여기에서 무슨 일이 일어나고 있는지에 대한 설명을 사용할 수 있습니다.
당신이 이해하지 못했던 것이 명확하지 않습니다. if는 "true", "false"및 "true"를 반환합니다. –
* "이 아니라 obj ["k "]"* - 여기서 묻고있는''k ''는 어디에서 왔습니까? 주석 처리 된 행에 따라 루프 내부에'return' 문 *이있는 경우 루프를 완료하지 않고 함수를 즉시 종료합니다. 루프가 마지막 항목을 제거한 후에'obj [key]'가 정의되지 않았기 때문에 함수의'return' 값은'undefined'가됩니다. – nnnnnn
내가 볼 수있는 것은 array의 값을 포함하고있는 모든 객체 키를 성공적으로 제거했다는 것입니다. 다시 질문은 무엇입니까? – choz