3 回答

TA貢獻1942條經(jīng)驗 獲得超3個贊
也許您可以Set()改用它來幫助您將獨特的電影存儲在localStorage.
嘗試如下:
const stringId = '12';
const stringName = 'Name';
const stringImage = '<img-url>';
const moviesList = new Set();
const movie = {
movieId: stringId,
movieName: stringName,
image: stringImage
};
moviesList.add(JSON.stringify(movie));
console.log('first attempt', JSON.parse(Array.from(moviesList)));
moviesList.add(JSON.stringify(movie));
console.log('second attempt', JSON.parse(Array.from(moviesList)));

TA貢獻1777條經(jīng)驗 獲得超3個贊
您的功能沒有讀取舊設(shè)置。相反,您從一個新的空數(shù)組開始:
let moviesList = [];
在這里,您可以改為加載上次保存的數(shù)據(jù),如下所示:
let moviesList = localStorage.getItem("movieList");
然后通過添加新電影來修改它,然后保存,就像你已經(jīng)在做的那樣。
希望這可以幫助。

TA貢獻2036條經(jīng)驗 獲得超8個贊
檢查對象是否已經(jīng)在檢索電影中array.some,并且只有在不存在時才推送它。
const retrievedMovies = localStorage.getItem("movieList");
if(retrievedMovies) {
const parseRetrievedMovies = JSON.parse(retrievedMovies);
console.log("retrievedMovies: ", retrievedMovies);
console.log("parseRetrievedMovies: ", parseRetrievedMovies);
const movieExists = parseRetrievedMovies.some((m) => movies.movieId === m.movieId ))
if(!movieExists) {
parseRetrievedMovies.push(movies);
}
}
添加回答
舉報