Javascript Array с динамически редактируемыми объектами и значениями - PullRequest
0 голосов
/ 11 октября 2018

Мне нужно отслеживать автомобили и типы / цвета машин без базы данных, и я ищу способ создать массив с объектами, которые я могу обновлять и удалять, а затем вызывать массив.

Так что, может быть, что-то вроде этого, где я могу добавить / редактировать / удалить любое из свойств объекта на машине:

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

Я знаю, как получить значение с помощью этого примера:

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

Можно ли вставить новый объект в этот массив и / или обновить одну машину и изменить цвет этой машины с помощью функции, которая ищет значение объекта «ferrari» и меняет его цвет на «черный»?Также, если я хочу создать предупреждение, чтобы показать содержимое массива, как я могу это сделать?

Ответы [ 4 ]

0 голосов
/ 11 октября 2018

Или используйте массив, но пусть каждый элемент массива будет объектом.

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

Обратите внимание, что цвет ламбо изменился.

0 голосов
/ 11 октября 2018
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); }

0 голосов
/ 11 октября 2018

Используйте объектно-ориентированный JavaScript

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

Затем создайте его мгновенно

var mycar = new Cars('Blue');
mycar.getColor();
0 голосов
/ 11 октября 2018

Вы не должны использовать массив.Используйте объект :

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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...