TypeScript中的findIndex数组方法

时间:2018-03-27 05:25:12

标签: javascript angular typescript

我对Angular 4开发很新。我遇到someArray.findIndex()不是一个功能。如何在TypeScript中添加此.findIndex() javascript函数。

我正在构建一个日历组件,以下函数给出了错误

  

WEBPACK_IMPORTED_MODULE_2_lodash .findIndex不是函数       在CalendarComponent.isSelected(calendar.component.ts:4

isSelected(date: moment.Moment): boolean {
    return _.findIndex(this.selectedDates, (selectedDate) => {
      return moment(date).isSame(selectedDate.mDate, 'day');
    }) > -1;
  }

非常感谢你。

4 个答案:

答案 0 :(得分:3)

它不是关于Typescript的。 JavaScript函数包含在Typescript中。您正在尝试使用Lodash功能。确保您已将其安装并导入到文件顶部:

import _ from 'lodash';

或只使用Javascript函数:

isSelected(date: moment.Moment): boolean {
    return this.selectedDates.findIndex((selectedDate) => {
      return moment(date).isSame(selectedDate.mDate, 'day');
    });
}

答案 1 :(得分:1)

您正在调用_的findIndex方法。您使用的是UnderscoreJSLodash

错误显示 WEBPACK_IMPORTED_MODULE_2_lodash.findIndex不是函数这意味着您正在使用lodash。

导入lodash库,它将起作用。

  

import _ from 'lodash';

答案 2 :(得分:0)

selectedDate = arrayName.find(item => item.date === searchingdate);

答案 3 :(得分:-1)

你可以使用indexOf

Option Explicit 'Always put this at the top of your Module!

Sub DataRoll()
    Dim wsTMP As Worksheet, SName As String

    SName = "Testing"

    Set wsTMP = ThisWorkbook.Worksheets(SName)

    With wsTMP
        .Range 'IntelliSense will pop up as soon as you add "("
    End With

    Set wsTMP = Nothing 'Tidy up after ourselves
End Sub