JS localStorage 저장 대상, sessionStorage 저장 배열 대상 작업 예제
머리말
최근 엔 엔 엔 골 라 로 쇼핑 카 트 기능 모듈 을 만 들 고 있다. 엔 골 라 의 워 치 감청 으로 데이터 가 바 뀌 면 자동 으로 페이지 를 렌 더 링 할 수 있 기 때문이다.그러나 문 제 는 이전 사용자 가 작 동 했 던 스타일 이 리 셋 된다 는 점 이다.
예 를 들 어 저 는 몇 개의 상품 을 선택 하여 결 제 를 준비 하고 상품 의 수량 을 수 정 했 습 니 다. 이때 요청 을 했 습 니 다. 페이지 데이터 가 렌 더 링 되 고 체크 된 상품 은 모두 선택 되 지 않 았 습 니 다.
선택 한 모든 상품 의 고유 Id 를 배열 에 저장 하고 localStorage 를 이용 하여 저장 하고 새로 고침 할 때마다 저 장 된 배열 을 가 져 와 Id 에 대응 하 는 배열 의 상품 을 다시 체크 하려 고 합 니 다.결 과 는 다음 과 같은 문제 가 발생 했다.
var a = [1,2,3];
window.localStorage.setItem('key',a);
var b = window.localStorage.getItem('key');
console.log(b,typeof b);//1,2,3 string
분명히 배열 이 들 어가 면 문자열 형식 으로 강 전 됩 니 다. 이것 은 제 가 원 하 는 것 이 아 닙 니 다. 찾 아 보면 json. stringify 와 JSON. parse 의 전환 을 이용 하여 목적 을 달성 할 수 있 습 니 다.
저장 소 배열
json. stringify 는 대상 을 JSON 문자열 로 변환 할 수 있 습 니 다.
JSON. parse 는 JSON 문자열 을 대상 으로 변환 할 수 있 습 니 다.
그러면 우리 가 저장 할 때 먼저 배열 을 JSON 문자열 로 바 꾸 고 꺼 내 서 배열 로 바 꾸 면 됩 니 다. 다음 과 같 습 니 다.
function storageObj(obj) {
var checkedIdStr = JSON.stringify(obj);
sessionStorage.setItem("key", checkedIdStr);
};
var arrBefor = [1,2,3];
storageObj(arrBefor);
var arrAfter = JSON.parse(sessionStorage.getItem("key"));
console.log(arrAfter,typeof arrAfter);//[1, 2, 3] "object"
저장 대상
function storageObj(obj) {
var checkedIdStr = JSON.stringify(obj);
sessionStorage.setItem("key", checkedIdStr);
};
var objBefor = {
a:1,
b:2
};
storageObj(objBefor);
var objAfter = JSON.parse(sessionStorage.getItem("key"));
console.log(objAfter,typeof objAfter);//{a: 1, b: 2} "object"
JSON 의 변환 값 을 이용 하여 저장 하 는 방식 은 매우 좋 으 며, 이외에 JSON 의 방법 은 딥 복사 에 도 사용 할 수 있다.
관심 있 는 친 구 는 온라인 HTML / CSS / JavaScript 코드 실행 도 구 를 사용 할 수 있 습 니 다.http://tools.jb51.net/code/HtmlJsRun상기 코드 운행 효 과 를 테스트 합 니 다.
더 많은 자 바스 크 립 트 관련 내용 은 본 사이트 의 주 제 를 볼 수 있 습 니 다.,,,, 및자 바스 크 립 트 오류 와 디 버 깅 기술 총화
본 고 에서 말 한 것 이 여러분 의 자 바스 크 립 트 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.