是否有下划线方法(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]));
}
where
从 array
中过滤对象,这些对象匹配对象 object
中的每个键值。
关于javascript - 下划线 where es6/typescript 替代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58823625/