gpt4 book ai didi

将具有相同属性的构造函数对象推送到数组的 JavaScript 函数

转载 作者:行者123 更新时间:2023-11-29 10:32:22 25 4
gpt4 key购买 nike

如果我按如下方式列出对象:

function Car(make, model, year, owner) {
this.make = make;
this.model = model;
this.year = year;
this.owner = owner;
}

var car1 = new Car('eagle', 'Talon TSi', 1993, 'rand');
var car2 = new Car('nissan', '300ZX', 1992, 'ken');
var car3 = new Car('nissan', '54353', 2001, 'barbie');
var car4 = new Car('nissan', 'XT', 2012, 'sam');
var car5 = new Car('eagle', 'GT', 2011, 'owen');
var car6 = new Car('eagle', '9', 2014, 'finn');

如何将具有相同 make 的所有对象推送到我命名的数组,例如:

var nissan = [];
var eagle = [];

或者更好的是在 make 之后命名数组,而不必声明那行代码。

最佳答案

使用数组代替 car1car2car3 等。这允许您调用 Array#filter 在结果上并获得仅具有特定品牌的汽车列表:

function Car(make, model, year, owner) {
this.make = make;
this.model = model;
this.year = year;
this.owner = owner;
}

var cars = [
new Car('eagle', 'Talon TSi', 1993, 'rand'),
new Car('nissan', '300ZX', 1992, 'ken'),
new Car('nissan', '54353', 2001, 'barbie'),
new Car('nissan', 'XT', 2012, 'sam'),
new Car('eagle', 'GT', 2011, 'owen'),
new Car('eagle', '9', 2014, 'finn')
]

function isMake (car) {
return car.make === String(this)
}

var nissans = cars.filter(isMake, 'nissan')
var eagles = cars.filter(isMake, 'eagle')

console.log(nissans)
console.log(eagles)
.as-console-wrapper { min-height: 100vh; }

编辑:作为bejadohis answer 中指出,您可能打算为您的车主使用引号。我原以为它们是代表人的物体。

关于将具有相同属性的构造函数对象推送到数组的 JavaScript 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42823230/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com