Javascript 如何在angular 2中正确使用forEach循环?

Javascript 如何在angular 2中正确使用forEach循环?,javascript,angular,foreach,angular2-services,Javascript,Angular,Foreach,Angular2 Services,我是Angular2的新手,在这里我尝试循环遍历数组“mmEditorTypes”并检查条件,如果条件满足,那么我将执行“open方法” 但是,每当我执行以下代码时,我都会遇到以下错误: portalModeService:加载portalMode引发异常: TypeError:无法读取未定义“”的属性“forEach” 有人能告诉我如何修复这个错误吗 porta.service.ts: function isAppContained(viewState, appType){ let

我是Angular2的新手,在这里我尝试循环遍历数组“mmEditorTypes”并检查条件,如果条件满足,那么我将执行“open方法”

但是,每当我执行以下代码时,我都会遇到以下错误:

portalModeService:加载portalMode引发异常:

TypeError:无法读取未定义“”的属性“forEach”

有人能告诉我如何修复这个错误吗

porta.service.ts:

function isAppContained(viewState, appType){
      let angular:any;
      let isContained = false;
      angular.forEach(viewState.appViewStates, function (appViewState) {
        if (appViewState.signature.appType === appType) {
          isContained = true;
        }
      });
      return isContained;
    }

不能将
angular.forEach
angular
一起使用,它与angularjs一起使用

使用


正如@Sajeetharan所说,在angular 2中不能使用angular.forEach+

因此,您可以在typescript中使用简单的foreach,如:

var someArray = [1, 2, 3];
someArray.forEach((item, index) => {
  console.log(item); // 1, 2, 3
  console.log(index); // 0, 1, 2
});

假设
viewState.appViewStates
是一个数组,您也可以使用
array.some
Thank you@Sajeetharan,现在用您的代码替换后,错误得到了解决,但是当我执行此代码时,我得到了类型错误:无法读取未定义错误的属性“length”:for(让mmEditorTypes的编辑器){//mmEditorTypes.forEach(函数(编辑器){if(!isAppContained(viewState,editor.type)){this.applicationLifeCycleService.open(editor.type,editor.payload);}如果我在这里做错了什么,请告诉我。我看不出你在代码中使用了长度。问题已经回答了,但实际上错误是因为你没有初始化angular。
var someArray = [1, 2, 3];
someArray.forEach((item, index) => {
  console.log(item); // 1, 2, 3
  console.log(index); // 0, 1, 2
});