javascript - Angular2 + / Typescript中的Lodash - groupBy在尝试传递参数时无法调用其类型缺少调用签名的表达式?
问题描述
Stackblitz在这里:
https://stackblitz.com/edit/angular-qbpnqc
import { Component, OnInit } from '@angular/core';
import _ from "lodash";
@Component({
selector: 'my-app',
templateUrl: './app.component.html',
styleUrls: [ './app.component.css' ]
})
export class AppComponent implements OnInit {
array: [
{
"BookingId": 0,
"OrderNumber": "331049910611",
"ArrivalTime": "07:00:00",
"DepartureTime": "14:00:00",
"Duration": "07:00:00",
},
{
"BookingId": 0,
"OrderNumber": "331049910611",
"ArrivalTime": "07:00:00",
"DepartureTime": "14:00:00",
"Duration": "07:00:00",
},
{
"BookingId": 0,
"OrderNumber": "331049910611",
"ArrivalTime": "07:00:00",
"DepartureTime": "14:00:00",
"Duration": "07:00:00",
},
{
"BookingId": 0,
"OrderNumber": "331049910611",
"ArrivalTime": "07:00:00",
"DepartureTime": "14:00:00",
"Duration": "07:00:00",
},
{
"BookingId": 0,
"OrderNumber": "331049910611",
"ArrivalTime": "07:00:00",
"DepartureTime": "14:00:00",
"Duration": "07:00:00",
},
{
"BookingId": 0,
"OrderNumber": "331049910611",
"ArrivalTime": "07:00:00",
"DepartureTime": "14:00:00",
"Duration": "07:00:00",
"DeliveryStatus": "Accepted"
},
{
"BookingId": 59088,
"OrderNumber": "691",
"ArrivalTime": "11:00:00",
"DepartureTime": "12:00:00",
"Duration": "01:00:00",
"DeliveryStatus": "Accepted"
}
];
countSmth: any;
ngOnInit() {
// not working
console.log( _(this.array).groupBy('DeliveryStatus').values().map(
(group) => ({ ...group[0], qty: group.length }).value()
));
}
}
解决方案
问题是它array
被声明为一个非常复杂的类型(在冒号之后),但实际上并没有被初始化,所以它是undefined
. 替换array:
为array =
。
推荐阅读
- react-native - 如何在 react-native 中检测屏幕是否有圆角
- ruby-on-rails - 在 Rails 中获取和设置 json 列的键的简洁方法
- javascript - 在页面刷新时从浏览器 url 中删除 #id
- google-sheets - 条件改变时如何改变整个范围的风格?
- javascript - 服务器端文件更改后 Passport.js req.user 对象未定义(节点,快递)
- reactjs - 在 Simulate('change') 状态未更新后
- azure - Azure 获取多租户中的所有组织
- hibernate - 在 tomcat 中创建名为“dataSource”的 bean 时出错
- python - 未找到关闭的属性
- android - 清空 Singleton 实例和所有字段