【发布时间】:2018-04-27 23:03:04
【问题描述】:
我无法使用函数向空对象添加值:
我正在尝试使用此代码根据随机数生成汽车对象,这些随机数从数组中提取值并将它们添加到空对象中
var makes = ["BMW", "Audi", "Mercedez", "Range Rover", "Lexus"];
var models= ["M Series", "S Series", "AMG", "Explorer", "F Series"];
var years = [2003, 2017, 2018, 1993, 2006];
var colors = ["black", "red", "blue", "silver", "Red"];
var convertibles = [true, false];
var rand1 = Math.floor(Math.random() * makes.length);
var rand2 = Math.floor(Math.random() * models.length);
var rand3 = Math.floor(Math.random() * years.length);
var rand4 = Math.floor(Math.random() * colors.length);
var rand5 = Math.floor(Math.random() * 5) + 1; //using this one to determine passenger
var rand6 = Math.floor(Math.random() * 2); //using this one to determine whether it's a convertible or not
function makeCar(newCar){
newCar = {
make: makes[rand1],
model: models[rand2],
year: years[rand3],
color: colors[rand4],
passengers: rand5,
convertible: convertibles[rand6],
mileage: 0
};
return newCar;
}
var Beamer = {};
makeCar(Beamer);
console.log(Beamer);
但是,每当我在 Firefox 的 Web 控制台中运行它时,我都会得到:
{}
__proto__: {…}
我正在使用教科书 Headstart: javascript,我看到您可以像这样创建一个空对象:
var lookMaNoProps = { };
然后您可以像这样动态添加到所述空对象:
var lookMaNoProps = { }; lookMaNoProps.age = 10;
if (lookMaNoProps.age > 5) {
lookMaNoProps.school = "Elementary";}
只是在试图理解为什么我的没有通过或者是我的语法错误时遇到了一点麻烦。
谢谢
【问题讨论】:
-
请注意,每次调用
makeCar()时都会使用相同的随机值。您可能希望在函数内设置变量,以便每次都能得到不同的汽车。 -
啊,我现在明白了。由于它们是在函数外部创建的,它们是静态的,但是一旦我将它们放入函数中,就好像它们被一遍又一遍地创建并获取新的随机值
标签: javascript arrays function object