私はよくある問題を抱えており、誰かがそれを解決する良い方法を持っているかどうかを知りたかったのです。もしforループが私が望むものを見つけられないなら何かをしてください
オブジェクトを見つけて更新するために配列をループしたいと思います。オブジェクトが存在しない場合は、配列に追加する必要があります。私は通常、問題をより複雑にするより複雑なオブジェクトを扱っています。
var movies = [
{ _id: 1, title:"Movie 1" },
{ _id: 2, title: "Another Movie" }
];
var myTheater = { location:"here", current_movies: movies };
// A movie to check. The _id may or may not be in movies.
var aMovie = { _id: 3, title: "Something New" };
// boolean flag to let us know if something happened
var updated = false;
// look through all movies and my theater and update as needed
for(var i = 0, len = myTheater.current_movies.length; i<len; i++){
if(myTheater.current_movies[i]._id === aMovie._id){
console.log("Updating movie name.");
myTheater.current_movies[i].title = aMovie.title;
updated = true;
break;
}
}
// check if anything was updated and add the movie if not
if(!updated){
myTheater.current_movies.push(aMovie);
}
これを行うより良い方法がありますか、フラグを使用するのが最適ですか?ありがとう!
あなたがオブジェクトを検索した後、複数の一致があることができない限り、あなたは、ループを終了するには、 'break'を使用する必要があります。 – Barmar