source

로컬 스토리지에 객체 어레이를 저장하는 방법

gigabyte 2023. 3. 10. 22:04
반응형

로컬 스토리지에 객체 어레이를 저장하는 방법

이건 내 암호야며칠 전부터 오브젝트 어레이를 작성하려고 합니다.그 후 로컬 스토리지에 저장합니다.문제가 있습니다. 먼저 로컬 스토리지에서 기존 가치를 가져와야 합니다.

그런 다음 새 데이터 개체를 기존 배열에 추가해야 합니다.그런 다음 로컬 스토리지에 다시 저장할 수 있도록 JSON으로 변환합니다.

onRegisterSubmit(){
    const user = {
        a: this.a,
        b: this.b,
        c: this.c,
      id: Date.now()
    }    

   var abc = [];
   var get =  JSON.parse(localStorage.getItem('user'));
   abc = [get];
   abc.push(user);

   localStorage.setItem('user', JSON.stringify(abc));

   console.log(JSON.stringify(abc));
   console.log(get);
  }

JSON이 이런 오브젝트 배열이 되었으면 합니다.

[{"hour":1,"minute":21,"ampm":"PM","repeatDays":[],"message":"","todayOrTomorrow":"Tomorrow","isRepeatMode":false,"isEnabled":false,"id":"1493797882440"},{"hour":1,"minute":24,"ampm":"PM","repeatDays":[],"message":"","todayOrTomorrow":"Tomorrow","isRepeatMode":false,"isEnabled":false,"id":"1493797896257"},{"hour":6,"minute":14,"ampm":"PM","repeatDays":[],"message":"","todayOrTomorrow":"Tomorrow","isRepeatMode":false,"isEnabled":false,"id":"1493815470408"}]

제 JSON입니다.

[[[[[[[{"id":1493820594019},{"id":1493820606448}],{"id":1493820609111}],{"id":1493820610150}],{"id":1493820610553}],{"id":1493820610827}],{"id":1493820611015}],{"id":1493820612018}]

며칠 동안 노력했는데 어떤 도움이라도 주시면 대단히 감사하겠습니다.

이 코드의 문제는 다음과 같습니다.

  1. 결과를 배열로 정리하지만 이론적으로는 이미 배열이 필요합니다.

  2. 저장 중user,것은 아니다.get또는abc. (이것을 편집으로 삭제했습니다.

어레이를 저장하려면 다음 작업을 수행합니다.

localStorage.setItem("users", JSON.stringify(users));

어레이를 가져오려면:

users = JSON.parse(localStorage.getItem("users") || "[]");

에 의해 디폴트(빈 어레이)가 제공되는 것에 주의해 주세요.getItem돌아온다null사용자를 거기에 저장한 적이 없기 때문입니다.

어레이에 사용자를 추가하려면:

users.push({id: 1, foo: "bar"});

예(jsFiddle에서 라이브[Stack Scnaptes로 로컬 스토리지를 허용하지 않음]):

(function() { // Scoping function to avoid creating globals
    // Loading
    var users = JSON.parse(localStorage.getItem("users") || "[]");
    console.log("# of users: " + users.length);
    users.forEach(function(user, index) {
        console.log("[" + index + "]: " + user.id);
    });

    // Modifying
    var user = {
        id: Math.floor(Math.random() * 1000000)
    };
    users.push(user);
    console.log("Added user #" + user.id);

    // Saving
    localStorage.setItem("users", JSON.stringify(users));
})();

콘솔의 현재 사용자 목록이 표시되며 페이지를 새로 고칠 때마다 하나씩 추가됩니다.

다음과 같이 시도해 보십시오.- link https://jsfiddle.net/sureshraina/nLexkyfw/1/

var mydatas = new Array();
        mydatas[0] = "data";
        mydatas[1] = "data1";
        mydatas[2] = "data2";

        localStorage["mydatas"] = JSON.stringify(mydatas);

        var datas = JSON.parse(localStorage["mydatas"]); 

투고를 참조해 주세요.

개체를 저장할 수 없습니다. 문자열을 저장해야 합니다.따라서 이 문제를 해결하려면 개체를 저장하기 전에 문자열을 지정합니다(예를 들어 개체를 JSON 개체로 변경하고 저장했다가 필요할 때 다시 읽을 수 있습니다).

언급URL : https://stackoverflow.com/questions/43762363/how-to-store-an-array-of-objects-in-local-storage

반응형