Javascript 使用Angularjs是否有更新数组中对象的最佳实践?

Javascript 使用Angularjs是否有更新数组中对象的最佳实践?,javascript,angularjs,Javascript,Angularjs,我的代码有效。我只是想知道是否有更好的方法。例如,只有一两行 ArtistDataService.update(entityData).then(function(response) { var artist = response.data; var artists = feedItem.event.artists; var artistToUpdate = $filter('filter')(artists, {_id: artist._id}); var in

我的代码有效。我只是想知道是否有更好的方法。例如,只有一两行

ArtistDataService.update(entityData).then(function(response) {
    var artist = response.data;
    var artists = feedItem.event.artists;
    var artistToUpdate = $filter('filter')(artists, {_id: artist._id});
    var index = artists.indexOf(artistToUpdate[0]);
    artists[index] = artist;

    if (typeof feedItem.event.new === 'undefined') {
        $state.go('feedItem.event.eventEdit');
    } else {
        $state.go('feedItem.event.eventNew');
    }
});
一种更有效的方法(因为您迭代了两次,一次是按id筛选匹配项,一次是检索记录的索引),就是简单地使用一个为in循环设计的好ol。找到艺术家后,更新阵列中的艺术家并打断

for (var i in artists) {
    if (artists[i]._id === artist._id) {
        artists[i] = artist;
        break; 
    }
}

艺术家是阵列吗?您可以通过_id对它们进行索引,然后直接访问以替换它,而不是过滤以获取索引然后替换它。这是纯javascript。类似于
artists[artist.\u id]
,但前提是您可以更改在数组中存储数据的方式