yüzden böyle nesneler dizisi var. Sunulan uid,
ile nesneyi yoksa veya sunulan uid
dizide yoksa yeni bir öğe eklediğimizde nesneyi değiştirmek için zarif bir yol arıyorum. Ben işlevi js konsolda bu şekilde davranma olmak hayal:Güncelleme var veya nesnelerin dizisine yeni bir unsur eklerseniz zarif bir şekilde javascript + 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"}
]
Bulunduğum yolu çok şık ve fonksiyonel olması görünmüyor: Ben lodash kullanıyorum
function addOrReplace (arr, object) {
var index = _.findIndex(arr, {'uid' : object.uid});
if (-1 === index) {
arr.push(object);
} else {
arr[index] = object;
}
}
, bu yüzden oldu Özel eşitlik kontrolü ile değiştirilmiş _.union
gibi bir şey düşünmek.
dizininizde "delikler" bulunamaz. Evet, ben de bu yapıyı seviyorum, fakat kullandığım bazı kütüphaneler yok destekle Sadece dizileri geçebilen [Açısal typeahead] (https://github.com/angular-ui/bootstrap/tree/master/src/typeahead) gibi. – ganqqwerty
Bu yapıyı yalnızca bir dizin olarak kullanabilirsiniz. Bu sayede hızlı aramalara ve bir dizi gibi şeyler için ek bir diziye ihtiyaç vardır. – friedi