如何从数据数组(JS)中删除特定列

Ian*_*Ian 4 javascript arrays

我有一个清单

let list = [ 
{ 
  id: "247", 
  order_number: "21251", 
  tel: 13911111, 
  weight: "10kg" 
}, 
{ 
  id: "245", 
  order_number: "223", 
  tel: 31, 
  weight: "10kg" 
},
{ 
  id: "123", 
  order_number: "312312321", 
  tel: 3213123, 
  weight: "10kg" 
}
];
Run Code Online (Sandbox Code Playgroud)

现在我只想删除特定的列,例如“电话”,以获取新列表。有什么优雅的方法可以做到吗?或者我必须循环整个数据才能使用 splice 方法?

Chr*_*sco 8

反对使用 delete 关键字,因为您将改变列表而不是创建一个新的列表,并且还因为文档中解释了它的行为,特别是那些关于:

  • 任何用 let 或 const 声明的属性都不能从定义它们的范围中删除
  • 如果对象的原型链上存在同名的属性,那么删除后,对象将使用原型链中的属性(也就是说,删除只对自己的属性有影响)。
  • 任何用 var 声明的属性都不能从全局作用域或函数作用域中删除。

相反,你可以map()

listWithoutTel = list.map(({ tel, ...item }) => item);
Run Code Online (Sandbox Code Playgroud)

在这里你会使用其他参数把所有的属性,但不需要的一个(在这种情况下,tel一个)的解构对象在一个名为变量item并立即返回英寸