3 回答
TA贡献1942条经验 获得超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条经验 获得超3个赞
您的功能没有读取旧设置。相反,您从一个新的空数组开始:
let moviesList = [];
在这里,您可以改为加载上次保存的数据,如下所示:
let moviesList = localStorage.getItem("movieList");
然后通过添加新电影来修改它,然后保存,就像你已经在做的那样。
希望这可以帮助。
TA贡献2036条经验 获得超8个赞
检查对象是否已经在检索电影中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);
}
}
添加回答
举报