Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/458.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 删除对象[元素]不';t删除但将其设置为null…如何删除它而不是将其设置为null?_Javascript_Node.js_Json - Fatal编程技术网

Javascript 删除对象[元素]不';t删除但将其设置为null…如何删除它而不是将其设置为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":

我想删除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": 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)