如何根据用户输入删除对象的键?

时间:2018-07-05 10:47:14

标签: javascript

我有一个基本上由一些汽车名称组成的对象。我只想根据用户输入删除该对象的键

例如:

let cars = {
  car1: 'BMW',
  car2: 'Lambo',
  car3: 'Mercedes'
};

const deleteCar = (car) => {
  delete cars.car;
}

deleteCar('car1');
console.log(cars);

如您所见,它实际上并没有从对象中删除密钥。我该怎么办?

2 个答案:

答案 0 :(得分:1)

JavaScript中的

foo.bar等效于foo["bar"]。因此,如果car是字符串,则delete cars[car]做正确的事情(而delete cars.car试图删除原本的文本键"car",而您没有)。

答案 1 :(得分:1)

使用方括号([])表示法可让我们动态访问属性名称:

let cars = {
  car1: 'BMW',
  car2: 'Lambo',
  car3: 'Mercedes'
};

const deleteCar = (car) => {
  delete cars[car];
}

deleteCar('car1');
console.log(cars);