개체 내의 항목을 반복하고 값이 true 인 항목을 삭제하여 해당 개체를 데이터로 게시하려고합니다.
스플 라이스를 사용하여 항목을 제거 할 때 Uncaught TypeError : Cannot read property 'delete'of undefined error. 왜 그런 겁니까?
https://jsfiddle.net/ah9td94q/3/
var data = {
"stuff":[
{"x":0},
{"y":1, "delete": true},
{"z":2, "delete": true}
]
}
Object.keys(data.stuff).forEach(function (key) {
if (data.stuff[key].delete == true) {
data.stuff.splice(key, 1);
}
});
var postData = JSON.stringify({something:'something', data: data});
console.log(postData);
var data = {
"stuff":[
{"x":0},
{"y":1, "delete": true},
{"z":2, "delete": true}
]
}
Object.keys(data.stuff).reverse().forEach(function (key) {
if (data.stuff[key].delete == true) {
data.stuff.splice(key, 1);
}
});
var postData = JSON.stringify({something:'something', data: data});
console.log(postData);
https://jsfiddle.net/ah9td94q/4/
삭제 된 요소 뒤의 요소는 방금 제거한 슬롯으로 "이동"하기 때문에 앞으로 계산되는 배열에서 삭제할 수 없습니다. 따라서 처음부터 끝까지 제거하는 대신 끝에서 처음으로 제거하고이 색인 문제를 우회합니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다