具有动态可编辑对象和值的Javascript数组

具有动态可编辑对象和值的Javascript数组,javascript,arrays,object,Javascript,Arrays,Object,我必须在没有数据库的情况下跟踪汽车和汽车类型/颜色,我正在寻找一种方法,用我可以更新和删除的对象创建一个数组,然后能够调用该数组 因此,我可以像这样通过汽车添加/编辑/删除任何对象属性: let cars = []; cars['ferrari'] = "red"; cars["lambo"] = "white"; cars["bentley"] = "silver"; 我知道如何通过以下示例获取值: showcolor = 'ferrari'; alert(cars[showcolor]);

我必须在没有数据库的情况下跟踪汽车和汽车类型/颜色,我正在寻找一种方法,用我可以更新和删除的对象创建一个数组,然后能够调用该数组

因此,我可以像这样通过汽车添加/编辑/删除任何对象属性:

let cars = [];
cars['ferrari'] = "red";
cars["lambo"] = "white";
cars["bentley"] = "silver";
我知道如何通过以下示例获取值:

showcolor = 'ferrari';
alert(cars[showcolor]);

是否可以将新对象推入该数组和/或更新一辆车,并使用查找对象值“ferrari”并将其颜色更改为“black”的功能更改该车的颜色?另外,如果我想创建一个警报来显示数组的内容,我该如何做呢?

您不应该使用数组。使用一个:

let cars={};//{}创建一个新对象
汽车[‘法拉利’]=“红色”;
汽车[“兰博”]=“白色”;
汽车[“宾利”]=“银色”;
//增加新车
汽车['bugatti']=“蓝色”;
//更新汽车
汽车['lambo']='green'
控制台.日志(汽车)
console.log(cars.get('ferari'))//红色

您还可以添加汽车:
cars.set('bmw','black')

console.log(cars.get('bmw'))//黑色

更新:
cars.set('bmw','blue')

对…使用
。。。警报数据的

for(出租汽车中的汽车){
警报(car);

}

使用面向对象的JavaScript

class Cars{
  constructor(color) {
    this.color= color;
  }
  function getColor(){
    console.log(this.color);
  }
然后创造一个瞬间

var mycar = new Cars('Blue');
mycar.getColor();

或者使用数组,但让数组的每个元素都是一个对象

let cars = [];
cars.push({ make: 'ferrari', color: 'red' });
cars.push({ make: 'lambo', color: 'white' });
cars.push({ make: 'bentley', color: 'silver' });
console.log(JSON.stringify(cars));

// Make the lambo black instead of white.
cars.find(car => car.make == 'lambo').color = 'black';
console.log(JSON.stringify(cars));
输出为:

[{"make":"ferrari","color":"red"},{"make":"lambo","color":"white"},{"make":"bentley","color":"silver"}]
[{"make":"ferrari","color":"red"},{"make":"lambo","color":"black"},{"make":"bentley","color":"silver"}]

请注意,lambo颜色已更改。

您考虑过使用地图吗?或者一个对象的对象,其中键是make。因此,您可以访问汽车属性,如
汽车['Ferrari']['color']
。这是坚如磐石的。毫无疑问,有几种方法可以做到这一点,我很感谢大家的努力。这肯定会对我的车有帮助。非常感谢。
[{"make":"ferrari","color":"red"},{"make":"lambo","color":"white"},{"make":"bentley","color":"silver"}]
[{"make":"ferrari","color":"red"},{"make":"lambo","color":"black"},{"make":"bentley","color":"silver"}]