lodash를 사용하여 목록에서 요소를 제거하는 방법은 무엇입니까?
다음과 같은 객체가 있습니다.
var obj = {
"objectiveDetailId": 285,
"objectiveId": 29,
"number": 1,
"text": "x",
"subTopics": [{
"subTopicId": 1,
"number": 1
}, {
"subTopicId": 2,
"number": 32
}, {
"subTopicId": 3,
"number": 22
}]
}
var stToDelete = 2;
나는 한 lodash
다른 것들에 대한 내 응용 프로그램에 설치되어 있어야합니다. 사용할 수있는 효율적인 방법이 있나요 lodash
: 항목 삭제 {"subTopicId":2, "number":32}
로부터 obj
객체는?
아니면 이것을 수행하는 자바 스크립트 방법이 있습니까?
의견에서 lyyons가 지적 했듯이이 작업을 수행하는 관용적이고 독창적 인 방법은 다음 _.remove
과 같이 사용하는 것입니다.
_.remove(obj.subTopics, {
subTopicId: stToDelete
});
그 외에도 현재 요소를 제거해야하는지 여부를 결정하는 데 사용되는 술어 함수를 전달할 수 있습니다.
_.remove(obj.subTopics, function(currentObject) {
return currentObject.subTopicId === stToDelete;
});
또는 이전 배열을 필터링하여 새 배열을 만들고 _.filter
동일한 객체에 다음과 같이 할당 할 수 있습니다
obj.subTopics = _.filter(obj.subTopics, function(currentObject) {
return currentObject.subTopicId === stToDelete;
});
또는
obj.subTopics = _.filter(obj.subTopics, {subTopicId: stToDelete});
바닐라 JS 만 사용하십시오. splice
요소를 제거하는 데 사용할 수 있습니다 .
obj.subTopics.splice(1, 1);
당신은 그것을 할 수 있습니다 _pull
.
_.pull(obj["subTopics"] , {"subTopicId":2, "number":32});
참조를 확인하십시오
이제 _.reject 를 사용하면 보관해야 할 내용 대신 제거해야 할 대상을 기준으로 필터링 할 수 있습니다.
달리 _.pull
거나 _.remove
, 배열에 만 작업이 ._reject
어떤 작업을한다Collection
obj.subTopics = _.reject(obj.subTopics, (o) => {
return o.number >= 32;
});
@thefourtheye 답변 외에도 전통적인 익명 함수 대신 술어 를 사용하십시오 .
_.remove(obj.subTopics, (currentObject) => {
return currentObject.subTopicId === stToDelete;
});
또는
obj.subTopics = _.filter(obj.subTopics, (currentObject) => {
return currentObject.subTopicId === stToDelete;
});
lodash와 typescript
const clearSubTopics = _.filter(obj.subTopics, topic => (!_.isEqual(topic.subTopicId, 2)));
console.log(clearSubTopics);
다음은 배열이있는 간단한 lodash 함수이며 색인 번호로 삭제하는 것입니다.
index_tobe_delete = 1
fruit = [{a: "apple"}, {b: "banana"}, {c: "choco"}]
_.filter(fruit, (value, key)=> {
return (key !== index_tobe_delete)
})
참고 URL : https://stackoverflow.com/questions/21281286/how-can-i-remove-an-element-from-a-list-with-lodash
'IT' 카테고리의 다른 글
Django에서 동적 필드 조회로 QuerySet을 어떻게 필터링합니까? (0) | 2020.06.13 |
---|---|
inheritInChildApplications를 사용하여 자식 웹 응용 프로그램에서 web.config 상속을 피하십시오. (0) | 2020.06.13 |
술어와 일치하는 순서로 첫 번째 요소 찾기 (0) | 2020.06.13 |
모범 사례가없는 경우 SQL Server 삽입 (0) | 2020.06.13 |
다양한 깊이의 중첩 된 사전 값 업데이트 (0) | 2020.06.13 |