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

时间:2018-10-11 17:47:03

标签: javascript arrays object

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

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

let cars = [];
cars['ferrari'] = "red";
cars["lambo"] = "white";
cars["bentley"] = "silver";

我知道如何通过以下示例获取值:

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

是否可以将新对象推入此数组和/或更新单个汽车并使用查找对象值“法拉利”并将其颜色更改为“黑色”的函数更改该汽车的颜色?另外,如果我想创建一个警报来显示数组的内容,该怎么办?

4 个答案:

答案 0 :(得分:1)

或者使用数组,但让数组的每个元素成为一个对象。

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"}]

请注意,兰博的颜色已更改。

答案 1 :(得分:0)

您不应该使用数组。使用object

let cars = {}; // {} creates a new object

cars['ferrari'] = "red";
cars["lambo"] = "white";
cars["bentley"] = "silver";

// add new car
cars['bugatti'] = 'blue';

// update car
cars['lambo'] = 'green'

console.log(cars);

答案 2 :(得分:0)

You can use Map from ES20015  standart.
let cars = new Map([
    ['ferrari',   'red'],
    ['lambo', 'white'],
    ['bentley',   'silver']
]);

console.log(cars.get('ferrari')) // red

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

console.log(cars.get('bmw')) // black

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

使用for ... of来获取警报数据:

for(let car of cars) { alert(car); }

答案 3 :(得分:0)

使用面向对象的JavaScript

class Cars{
  constructor(color) {
    this.color= color;
  }
  function getColor(){
    console.log(this.color);
  }

然后创建一个瞬间

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