【问题标题】:Javascript deleting a property from an array of objects with a function [duplicate]Javascript从具有函数的对象数组中删除属性[重复]
【发布时间】:2020-05-17 00:12:23
【问题描述】:

我有一个对象数组:

const car = [{
  color: 'blue',
  brand: 'Ford'
},{
  color: 'red',
  brand: 'Chevy'
}]

我正在尝试创建一个删除给定属性的函数。例如,我想从所有汽车对象中删除“颜色”属性。如果我编写以下代码,它可以工作:

car.forEach(function(v){ delete v.color})

但是,如果我尝试创建一个函数来执行此操作,它就不起作用:

function removeP(arr, keyPar) {
  arr.forEach(function(v){ delete v.keyPar});
}

removeP(car, color)

我也尝试将函数调用为:

removeP(car,'color')

其中,至少不会给我一个错误,但也不起作用。

为什么这个功能不起作用?

【问题讨论】:

  • 改用括号表示法
  • @BradyB 如果您只需要从对象数组中获取某些属性,您可以使用map 像这样:car.map(({brand})=>({brand}))

标签: javascript arrays function object nested


【解决方案1】:

在变量中存储键时应该使用括号表示法:

const car = [{
  color: 'blue',
  brand: 'Ford'
},{
  color: 'red',
  brand: 'Chevy'
}];

function removeP(arr, keyPar) {
  arr.forEach(function(v){ delete v[keyPar]});
}

removeP(car, 'color');

console.log(car);

【讨论】:

  • 做到了。我很欣赏你的回应。我显然需要更多的练习。谢谢!
猜你喜欢
  • 1970-01-01
  • 2015-12-14
  • 2019-01-14
  • 1970-01-01
  • 2018-03-28
  • 1970-01-01
  • 2020-07-25
  • 2012-04-17
  • 2019-03-11
相关资源
最近更新 更多