javascript - Array 上不存在 Angular2 查找

标签 javascript angular ecmascript-5 typescript2.0

我有一个使用 typescript 2.0.4 的 angular2 项目 (2.0.0)。

我有这个代码:

var assignedIds: Array<string> = this.AssignedUsers.map(u => u.id);
var users = this.AllUsers.filter(all => all.id != assignedIds.find(id => id == all.id));

我在查找方法时遇到错误:

Property 'find' does not exist on type 'string[]'.

我在几个数组上都遇到了这个错误——不仅仅是这个。一对是 number[],一个是 string[],还有一个是自定义对象。

如果我编译成 es6,它可以工作,但我需要以 es5 为目标。

我需要打字吗?

最佳答案

find() 在 ES5 中不存在,所以你得到错误。你可以用 polyfill 解决这个问题(如评论中所述)。

但是,您实际上应该简单地编写代码:

var assignedIds: Array<string> = this.AssignedUsers.map(u => u.id);
var users = this.AllUsers.filter(all => assignedIds.some(id => id == all.id));

关于javascript - Array 上不存在 Angular2 查找,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40050968/

相关文章:

angular - 组件交互 Angular 2

Angular 2. 依赖于服务器响应的防护

javascript - ECMAScript 规范中的 `new Object` 与 `Object`

javascript - Redux:使用 compose() 或不使用它的 applyMiddleware 之间的区别?

javascript - 根据条件动态地将脚本添加到我的应用程序

javascript - 如果输入字段包含文本,如何触发函数?

css - sidenav首页打不开

javascript - 在交汇点混合两个 div

javascript - ES5 中的 Object.defineProperty?

javascript - Math.cos(Math.PI/2) 在 JavaScript 和 AS3 中返回 6.123031769111886e-17?