javascript - 下划线 where es6/typescript 替代

标签 javascript typescript

是否有下划线方法(where)的替代方法?

我想找到一个具有如下属性的数组:

_.where(listOfPlays, {author: "Shakespeare", year: 1611});
=> [{title: "Cymbeline", author: "Shakespeare", year: 1611},

最佳答案

您可以使用Array#filter。您将无法使用对象,但可以直接使用属性:

let results = listOfPlays.filter(play => play.author === "Shakespeare" && play.year === 1611);

或者,如果您真的想要 _.where 的副本:

function where(array, object) {
  let keys = Object.keys(object);
  return array.filter(item => keys.every(key => item[key] === object[key]));
}

wherearray 中过滤对象,这些对象匹配对象 object 中的每个键值。

关于javascript - 下划线 where es6/typescript 替代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58823625/

相关文章:

javascript - 理解 TypeScript/Angular JS 中的定义顺序

reactjs - 为 typescript 的 npm react 模块定义类型

javascript - 如何将 Angular 2 应用程序集成到 Django 应用程序中

javascript - Highcharts ;添加渲染时持续的任意数据

javascript - 确定标记化 html 输入中的插入符位置?

javascript - 有更好的方法来实现这一目标吗? '000000' .切片(0, -'434' .长度) + '434' = '000434'

javascript - 自定义 Amcharts v4 工具提示边框颜色

javascript - TS2538 类型 'undefined' 不能用作索引类型。当检查分配给变量时

带有 ngrx 存储的 Angular Rxjs 可观察链

inheritance - 你如何访问 Typescript 中基类的属性?