第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如果尚未在 localStorage 中,如何將新對象推送到數(shù)組

如果尚未在 localStorage 中,如何將新對象推送到數(shù)組

桃花長相依 2022-06-16 16:47:12
我正在嘗試實現(xiàn)一個簡單的“添加到收藏夾”功能,但不能完全讓事情在本地存儲中工作。我可以將對象/數(shù)組推送到本地存儲并取回它,但是當(dāng)我單擊下一個項目以“添加到收藏夾”時,我最終會覆蓋前一個而不是向數(shù)組添加新對象。下面的代碼: const push1 = async (movieId, movieName, image) => {    const stringId = JSON.stringify(movieId);    const stringName = JSON.stringify(movieName);    const stringImage = JSON.stringify(image);    // our array    let moviesList = [];    // our object    let movies = {      movieId: stringId,      movieName: stringName,      image: stringImage    };    moviesList.push(movies);    // storing our array as a string    localStorage.setItem("movieList", JSON.stringify(moviesList));    let updatedMoviesList = [];    const retrievedMovies = localStorage.getItem("movieList");    const parseRetrievedMovies = JSON.parse(retrievedMovies);    console.log("retrievedMovies: ", retrievedMovies);    console.log("parseRetrievedMovies: ", parseRetrievedMovies);    parseRetrievedMovies.push(movies);};如果同一個對象不存在,我該如何更新數(shù)組?
查看完整描述

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)));


查看完整回答
反對 回復(fù) 2022-06-16
?
慕森王

TA貢獻1777條經(jīng)驗 獲得超3個贊

您的功能沒有讀取舊設(shè)置。相反,您從一個新的空數(shù)組開始:

let moviesList = [];

在這里,您可以改為加載上次保存的數(shù)據(jù),如下所示:

let moviesList = localStorage.getItem("movieList");

然后通過添加新電影來修改它,然后保存,就像你已經(jīng)在做的那樣。

希望這可以幫助。


查看完整回答
反對 回復(fù) 2022-06-16
?
慕桂英3389331

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);

   }

}


查看完整回答
反對 回復(fù) 2022-06-16
  • 3 回答
  • 0 關(guān)注
  • 159 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號