首页 > 解决方案 > Javascript使用函数从对象数组中删除属性

问题描述

我有一个对象数组:

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')

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

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

标签: javascriptarraysfunctionobjectnested

解决方案


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

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);


推荐阅读