Javascript 删除对象[元素]不';t删除但将其设置为null…如何删除它而不是将其设置为null?
我想删除Tours对象中的and对象,但此函数将其设置为null,而不是删除它 删除之前的巡更操作是这样的Javascript 删除对象[元素]不';t删除但将其设置为null…如何删除它而不是将其设置为null?,javascript,node.js,json,Javascript,Node.js,Json,我想删除Tours对象中的and对象,但此函数将其设置为null,而不是删除它 删除之前的巡更操作是这样的 Object.keys(tours).forEach(el => { if (tours[el].id == 0) ***delete tours[el];*** }); 删除后,它将变为 [ { "id": 0, "name": "The Forest Hiker", "duration": 5, "maxGroupSize":
Object.keys(tours).forEach(el => {
if (tours[el].id == 0) ***delete tours[el];***
});
删除后,它将变为
[
{
"id": 0,
"name": "The Forest Hiker",
"duration": 5,
"maxGroupSize": 25,
"difficulty": "easy",
"ratingsAverage": 4.7
},
{
"id": 1,
"name": "The Sea Explorer",
"duration": 7,
"maxGroupSize": 15,
"difficulty": "medium",
"ratingsAverage": 4.8
}
]
您不应该使用
delete
从数组中删除元素
[
null,
{
"id": 1,
"name": "The Sea Explorer",
"duration": 7,
"maxGroupSize": 15,
"difficulty": "medium",
"ratingsAverage": 4.8,
"ratingsQuantity": 23,
"price": 497,
"summary": "Exploring the jaw-dropping US east coast by foot and by boat",
"description": "Cpariatur.",
"imageCover": "tour-2-cover.jpg",
"images": ["tour-2-1.jpg", "tour-2-2.jpg", "tour-2-3.jpg"],
"startDates": ["2021-06-19,10:00", "2021-07-20,10:00", "2021-08-18,10:00"]
}
]
可以使用从数组中删除元素
[
null,
{
"id": 1,
"name": "The Sea Explorer",
"duration": 7,
"maxGroupSize": 15,
"difficulty": "medium",
"ratingsAverage": 4.8,
"ratingsQuantity": 23,
"price": 497,
"summary": "Exploring the jaw-dropping US east coast by foot and by boat",
"description": "Cpariatur.",
"imageCover": "tour-2-cover.jpg",
"images": ["tour-2-1.jpg", "tour-2-2.jpg", "tour-2-3.jpg"],
"startDates": ["2021-06-19,10:00", "2021-07-20,10:00", "2021-08-18,10:00"]
}
]
如果该条件对数组中的多个元素为true,则需要考虑在对数组进行迭代时对其进行变异,因此需要考虑删除的元素数
tours.forEach( (el, index) => {
if (tours[el].id == 0) tours.splice(index, 1)
});
您不应该使用
delete
从数组中删除元素
[
null,
{
"id": 1,
"name": "The Sea Explorer",
"duration": 7,
"maxGroupSize": 15,
"difficulty": "medium",
"ratingsAverage": 4.8,
"ratingsQuantity": 23,
"price": 497,
"summary": "Exploring the jaw-dropping US east coast by foot and by boat",
"description": "Cpariatur.",
"imageCover": "tour-2-cover.jpg",
"images": ["tour-2-1.jpg", "tour-2-2.jpg", "tour-2-3.jpg"],
"startDates": ["2021-06-19,10:00", "2021-07-20,10:00", "2021-08-18,10:00"]
}
]
可以使用从数组中删除元素
[
null,
{
"id": 1,
"name": "The Sea Explorer",
"duration": 7,
"maxGroupSize": 15,
"difficulty": "medium",
"ratingsAverage": 4.8,
"ratingsQuantity": 23,
"price": 497,
"summary": "Exploring the jaw-dropping US east coast by foot and by boat",
"description": "Cpariatur.",
"imageCover": "tour-2-cover.jpg",
"images": ["tour-2-1.jpg", "tour-2-2.jpg", "tour-2-3.jpg"],
"startDates": ["2021-06-19,10:00", "2021-07-20,10:00", "2021-08-18,10:00"]
}
]
如果该条件对数组中的多个元素为true,则需要考虑在对数组进行迭代时对其进行变异,因此需要考虑删除的元素数
tours.forEach( (el, index) => {
if (tours[el].id == 0) tours.splice(index, 1)
});
正如我所看到的,
tours
只是一个对象数组。因此,您可以:
以任何条件删除
删除给定索引n
具体删除索引0
正如我所看到的,
tours
只是一个对象数组。因此,您可以:
以任何条件删除
删除给定索引n
具体删除索引0
你应该使用
删除多个项目
如果数组可以包含多个要删除的值,那么可以使用类似这样的函数从数组的末尾到开头进行迭代(如果转到另一个并删除项,则某些项的索引将更改)
var-tours=[{
“id”:0,
“名字”:“森林徒步旅行者”,
“持续时间”:5,
“maxGroupSize”:25,
“难度”:“容易”,
“评级储蓄率”:4.7
}, {
“id”:1,
“名称”:“海洋探险家”,
“持续时间”:7,
“maxGroupSize”:15,
“难度”:“中等”,
“评级储蓄率”:4.8
}];
tours.reduceRight(功能(资源、项目、索引){
如果(item.id==0)为0.splice(索引,1);
}, 0);
控制台日志(旅游)代码>您应该使用
删除多个项目
如果数组可以包含多个要删除的值,那么可以使用类似这样的函数从数组的末尾到开头进行迭代(如果转到另一个并删除项,则某些项的索引将更改)
var-tours=[{
“id”:0,
“名字”:“森林徒步旅行者”,
“持续时间”:5,
“maxGroupSize”:25,
“难度”:“容易”,
“评级储蓄率”:4.7
}, {
“id”:1,
“名称”:“海洋探险家”,
“持续时间”:7,
“maxGroupSize”:15,
“难度”:“中等”,
“评级储蓄率”:4.8
}];
tours.reduceRight(功能(资源、项目、索引){
如果(item.id==0)为0.splice(索引,1);
}, 0);
控制台日志(旅游)
您正试图迭代一个数组
,就像对对象
进行迭代一样,您可以使用array.filter
获得一个过滤后的数组,而无需改变原始数组
tours.shift()
您也可以使用splice来执行此操作
filteredTours = tours.filter(tour => tour.id == 0)
您正试图迭代一个数组
,就像对对象
进行迭代一样,您可以使用array.filter
获得一个过滤后的数组,而无需改变原始数组
tours.shift()
您也可以使用splice来执行此操作
filteredTours = tours.filter(tour => tour.id == 0)
key()用于迭代对象的道具。在这里,您最好直接使用for循环或forEach。当你找到匹配的,只要拼接它。有什么帮助吗
tours.forEach((tour,index)=> if(tour.id===1){ tours.splice(index,1) }
for(设i=0;i
Object.keys()用于迭代对象的道具。在这里,您最好直接使用for循环或forEach。当你找到匹配的,只要拼接它。有什么帮助吗
tours.forEach((tour,index)=> if(tour.id===1){ tours.splice(index,1) }
for(设i=0;i
似乎你想要也许?:const res=tours.filter(obj=>obj.id!==0)
似乎你想要也许?:const res=tours.filter(obj=>obj.id!==0)