我有一个看起来像这样的对象数组。我使用lodash中的.groupBy使其呈现出这种形式。
States.ts
我需要它看起来像这样:
我尝试了下面的代码,但它不起作用。当我将其打印到控制台时出现
使用lodash的.groupBy方法后打印结果的控制台日志 按国家分组的对象
States.ts
STATES: Object[] = [
{
USA: [
{
name: 'Alabama',
abbreviation: 'AL',
country: 'USA'
},
{
name: 'Alaska',
abbreviation: 'AK',
country: 'USA'
}
]
},
{
Canada: [
{
name: 'Alberta',
abbreviation: 'ALB',
country: 'Canada'
}
]
}
];
我需要它看起来像这样:
stateList:StateDropdownItem[] =[
{
label: 'USA',
items: [
{label: 'AL', value: 'Alabama'},
{label: 'AK', value: 'Alaska'},
]
},
.
.
]
我尝试了下面的代码,但它不起作用。当我将其打印到控制台时出现
undefiened
,即使我尝试放置一个没有for循环的元素,我仍然会得到以下错误Cannot read property 'push' of undefined
TS
dropdownOfStates: StateDropdownItem[];
.
.
dropdownBuilder() {
const STATES_BY_COUNTRY = this.getStatesByCountry();
let tempItem;
for (let i = 0; i < STATES_BY_COUNTRY.length; i++) {
tempItem = STATES_BY_COUNTRY[i];
this.dropdownOfStates.push(
new StateDropdownItem('KEY COUNTRY VALUE HERE', [
tempItem.abbreviation,
tempItem.name
])
);
}
}
使用lodash的.groupBy方法后打印结果的控制台日志 按国家分组的对象
JSON.stringify
,这会有所帮助。 - user184994