Javascript 如何将对象转换为数组?
我已将数据存储在阵列中的本地存储器中。现在,我想从本地存储中的阵列中删除某些项。 这是我第一次Javascript 如何将对象转换为数组?,javascript,jquery,arrays,object,Javascript,Jquery,Arrays,Object,我已将数据存储在阵列中的本地存储器中。现在,我想从本地存储中的阵列中删除某些项。 这是我第一次 var items = JSON.parse(localStorage.getItem('shoppingCart')); var resturantid = localStorage.getItem('resturant_id'); var filtered = []; for (var q = 0; q < items.length; q++) { if (items[q].restu
var items = JSON.parse(localStorage.getItem('shoppingCart'));
var resturantid = localStorage.getItem('resturant_id');
var filtered = [];
for (var q = 0; q < items.length; q++) {
if (items[q].resturantid == resturantid) {
filtered.push(items[q]);
}
}
console.log(typeof filtered, filtered);
typeof给了我一个对象,正因为如此,我不能使用map函数,因为它说array.map不是一个函数。
我希望发生这些事情只是为了删除设置了数组的本地存储密钥中的某些项。问题是您必须使用筛选的[0]。名称等 因为HTML中没有对象,所以必须使用 但是,如果要在HTML中显示,可以使用筛选的[0].toString
并打印它这不是地图的适当用途;这将返回一个新数组,其中包含所有原始元素的元素。使用筛选器仅返回满足测试的元素
var filtered = items.filter(item => item.restaurantid == restaurantid);
您的对象是一个数组,因此所有标准数组方法都应该适用于它。您的对象类似于{0:{…},1:{…}}您需要创建一个类似[{…},{…}]的值数组!为此,请使用Object.values,然后根据您的程序需要应用map、filter或reduce 让obj=Object.assign{},[{name:veg-momo,price:12,count:8,resturant:Test-Developer,resturantid:2},{name:afdafasdf,price:123,count:4,resturant:Test-Developer,resturantid:2}]; //obj.mapx=>{console.logx}//错误:未捕获类型错误:obj.map不是函数
Object.valuesobj.mapx=>console.logx;//作品数组也是对象。这能回答你的问题吗@由于这个原因,我不能使用array.map函数。什么是array?你在哪里调用array.map?这不在您的代码中。myArray的typeof始终提供对象。不要因此而阻止您使用myArray.map。请阅读以获取有关如何回答的信息。在使用该网站之前,请随意浏览中的其他文章,以熟悉该网站及其工作方式。问题在于类似于{0:{…},1:{…}的对象,而不是数组。这是从哪里获得的?问题从我已将数据存储在阵列的本地存储中开始。localStorage不支持array@ArunSaini数组转换为JSON,JSON同时支持数组和对象。
var filtered = items.filter(item => item.restaurantid == restaurantid);