在与用户确定的id和数组对象进行比较的情况下,我只会得到一个对象。
var laptops = [{
"name": "Firefox",
"age": 30,
"id": "ab"
},
{
"name": "Google",
"age": 35,
"id": "cd",
"date": "00.02.1990"
},
{
"name": "Microsoft",
"id": "ef",
"age": 40
}
];
getLaptopByAsin(id: string) {
var laptop = this.laptops.find(
(laptopObject) => {
return laptopObject.name === id;
}
);
return laptop;
}
var enter = "cd";
name = this.getLaptopByAsin(enter).name;
age = this.getLaptopByAsin(enter).age;
date = this.getLaptopByAsin(enter).date;
console.log(name)
console.log(age)
console.log(date)
答案 0 :(得分:0)
您的问题是您过滤了姓名:
this.laptops.find(
(laptopObject) => {
return laptopObject.name === id;
}
);
解决问题并进行一些重构后,代码将变为:
getLaptopByAsin(id: string) {
return this.laptops.find(
laptopObject => laptopObject.id === id
);
}
其他一些评论:
避免在不需要时调用多个函数,将结果从getLaptopByAsin保存到变量(const foundLaptop)中,这样就无需遍历数组多次。例如:
const foundLaptop = this.getLaptopByAsin('cd'); console.log(foundLaptop.name); console.log(foundLaptop.age,foundLaptop.date);