如何创建一个包含来自本地存储对象的多个元素的数组
How to creat an array that includes multiples elements from an object from the local Storage
我想创建一个数组,其中包含我的购物网站购物车的本地存储对象中的每个产品 ID。问题是我为每个产品的 ID 生成一个数组而不是一个包含所有产品 ID 的数组的函数
var cartStorage = JSON.parse(localStorage.getItem("cart"));
cartStorage.forEach(function (cart, index) {
let cartIds = [cart._id];
console.log(cartIds); // logs one array for each id instead of just one array with every id's
});
我已经尝试了几个小时,但似乎没有任何效果,我猜我必须使用 forEach(),但我做不到?
在循环外创建变量,并将值推入此数组。
var cartIds = []
var cartStorage = JSON.parse(localStorage.getItem("cart"));
cartStorage.forEach(function (cart, index) {
cartIds.push(cart._id)
});
console.log(cartIds) // this has all the pushed values inside
您正在 let cartIds
循环内定义。它在每个循环中被创建和重新创建。所以,当然,它只包含一个元素。将其定义在循环外,并在循环中将内容推入其中。
const cartStorage = JSON.parse(localStorage.getItem("cart"));
let cartIds = [];
cartStorage.forEach(cart => cartIds.push(cart._id));
console.log(cartIds);
甚至更好:
const cartStorage = JSON.parse(localStorage.getItem("cart"));
const cartIds = cartStorage.map(cart => cart._id);
console.log(cartIds);
另外请注意,如果您的 localStorage 中没有“购物车”,getItem
将 return null
,您的代码将会崩溃。你需要处理这种情况。
我想创建一个数组,其中包含我的购物网站购物车的本地存储对象中的每个产品 ID。问题是我为每个产品的 ID 生成一个数组而不是一个包含所有产品 ID 的数组的函数
var cartStorage = JSON.parse(localStorage.getItem("cart"));
cartStorage.forEach(function (cart, index) {
let cartIds = [cart._id];
console.log(cartIds); // logs one array for each id instead of just one array with every id's
});
我已经尝试了几个小时,但似乎没有任何效果,我猜我必须使用 forEach(),但我做不到?
在循环外创建变量,并将值推入此数组。
var cartIds = []
var cartStorage = JSON.parse(localStorage.getItem("cart"));
cartStorage.forEach(function (cart, index) {
cartIds.push(cart._id)
});
console.log(cartIds) // this has all the pushed values inside
您正在 let cartIds
循环内定义。它在每个循环中被创建和重新创建。所以,当然,它只包含一个元素。将其定义在循环外,并在循环中将内容推入其中。
const cartStorage = JSON.parse(localStorage.getItem("cart"));
let cartIds = [];
cartStorage.forEach(cart => cartIds.push(cart._id));
console.log(cartIds);
甚至更好:
const cartStorage = JSON.parse(localStorage.getItem("cart"));
const cartIds = cartStorage.map(cart => cart._id);
console.log(cartIds);
另外请注意,如果您的 localStorage 中没有“购物车”,getItem
将 return null
,您的代码将会崩溃。你需要处理这种情况。