그래서 나는 그와 같은 객체의 배열을 가지고있다. 주어진 uid,
으로 오브젝트를 가지고 있거나, 제시된 uid
이 배열에 존재하지 않으면 새로운 요소를 추가하면 오브젝트를 수정하는 우아한 방법을 찾고 있습니다. 나는 기능이 JS 콘솔에서 그렇게 행동 할 상상 :업데이트 존재 나 개체의 배열에 새로운 요소를 추가하면 우아한 방법을 자바 스크립트 + lodash
> addOrReplace(arr, {uid: 1, name: 'changed name', description: "changed description"})
> arr
[
{uid: 1, name: "bla", description: "cucu"},
{uid: 2, name: "smth else", description: "cucarecu"},
]
> addOrReplace(arr, {uid: 3, name: 'new element name name', description: "cocoroco"})
> arr
[
{uid: 1, name: "bla", description: "cucu"},
{uid: 2, name: "smth else", description: "cucarecu"},
{uid: 3, name: 'new element name name', description: "cocoroco"}
]
내 현재의 방법은 매우 우아하고 기능 될 것 같지 않습니다 : 내가 lodash 사용하고
function addOrReplace (arr, object) {
var index = _.findIndex(arr, {'uid' : object.uid});
if (-1 === index) {
arr.push(object);
} else {
arr[index] = object;
}
}
, 그래서 나는했다 맞춤 평등 검사를 수정 한 _.union
과 같은 것을 생각해보십시오.
예,이 구조도 마음에 들지만 일부 라이브러리는 사용하지 않습니다. 그것을 지원하십시오. [Angular typeahead] (https://github.com/angular-ui/bootstrap/tree/master/src/typeahead)와 같이 배열 만 이동할 수 있습니다. – ganqqwerty
이 구조는 인덱스로만 사용할 수 있습니다. 이렇게하면 빠른 조회가 가능하며 배열과 같은 항목에 대한 추가 배열이 필요합니다. – friedi