【发布时间】:2022-01-09 13:20:32
【问题描述】:
我正在尝试在对象数组中搜索以查看是否有任何对象包含我要查找的对象并将其分配给变量。
这是我正在使用的界面。基本上我有一系列国家,每个国家都有自己的城市。
import { ICity } from "./city";
export interface ICountry {
name: string,
capital: string,
language: string,
population: number,
density: number,
area: number,
majorCities: ICity[]
}
我要找的对象是这个函数的city参数,但它总是返回undefined。查找某个城市所属国家/地区的最佳方法是什么?
remove(city: ICity): void {
var country;
this.countries.forEach(cn => {
if (cn.majorCities.includes(city)) {
country = cn;
console.log(cn);
}
});
console.log(country);
}
【问题讨论】:
-
ICity是一个对象吗?如果是这样,除非您正在寻找严格的引用相等性,否则您不能使用includes。您将需要在find()、findIndex()调用中查找city的匹配属性,或者如果您只想确定它是否存在于数组中,您可以使用some()。 IE。if (cn.majorCities.some(c => c.name === city.name)) {...
标签: javascript angular typescript