首页 > 解决方案 > ES6:将对象推入数组返回数组长度。如何将其存储为 sessionStorage 中的对象数组

问题描述

我正在尝试将对象推入数组并将其存储在 sessionStorage 中。但是对象的array.push 返回数组的长度。如何将实际对象存储到数组中?

在此处输入图像描述 jsfiddle

const counties = {
"Bucks": {
        "countyCode": "42017",
        "globalStateCode": "PA",
        "stateCode": "PA"
    },
"Montgomery": {
        "countyCode": "42091",
        "globalStateCode": "PA",
        "stateCode": "PA"
    }
};

let selectedCountiesArray = [];

console.log(selectedCountiesArray.push(counties['Bucks'])); // 1
sessionStorage.setItem("tableDisplay", JSON.stringify(selectedCountiesArray.push(counties['Bucks'])));
let selectedCounties = JSON.parse(sessionStorage.getItem("tableDisplay"));

预期结果:

[{
  countyCode: "42017",
  globalStateCode: "PA",
  stateCode: "PA"
}]

标签: javascriptecmascript-6

解决方案


您正在尝试存储 array.push() 的返回值而不是实际的数组。

首先,将值推送到一个数组,然后将该数组作为参数传递给sessionStorage.setItem

const counties = {
"Bucks": {
        "countyCode": "42017",
        "globalStateCode": "PA",
        "stateCode": "PA"
    },
"Montgomery": {
        "countyCode": "42091",
        "globalStateCode": "PA",
        "stateCode": "PA"
    }
};

//Push to Array
let selectedCountiesArray = [];
selectedCountiesArray.push(counties['Bucks'])

//Set item
sessionStorage.setItem("tableDisplay", JSON.stringify(selectedCountiesArray));


//Get Item
let selectedCounties = JSON.parse(sessionStorage.getItem("tableDisplay"));
console.log(selectedCounties)

推荐阅读