es6 相当于下划线 findWhere
es6 equivalent of underscore findWhere
我正在寻找如何将下划线 _.findWhere
转换为 es6 原生 javascript?
_.findWhere($scope.template, {id: $scope.approveTemplate})
$scope.template.find(t => t.id === $scope.approveTemplate)
虽然 非常适合您发布的特定示例,但这个应该处理 _.findWhere
的每个用例:
function myFindWhere(array, criteria) {
return array.find(item => Object.keys(criteria).every(key => item[key] === criteria[key]))
}
它 returns 输入数组中第一个匹配条件的所有已定义属性的项目(如果没有这样的项目,则 undefined
),我认为这是合同_.findWhere
.
以下是如何使用它来处理您的示例:
myFindWhere($scope.template, {id: $scope.approveTemplate})
下面是我用来测试它的几个测试用例:
myFindWhere([{"a":0, "b":1}, {"a":1}, {"b":1}], {"a":0})
> Object {a: 0, b: 1}
myFindWhere([{"a":0, "b":1}, {"a":1}, {"b":1}], {"b":0})
> undefined
myFindWhere([{"a":0, "b":1}, {"a":1}, {"b":1}], {"b":1})
> Object {a: 0, b: 1}
myFindWhere([{"a":0, "b":1}, {"a":1}, {"b":2}], {"b":2})
> Object {b: 2}
我正在寻找如何将下划线 _.findWhere
转换为 es6 原生 javascript?
_.findWhere($scope.template, {id: $scope.approveTemplate})
$scope.template.find(t => t.id === $scope.approveTemplate)
虽然 _.findWhere
的每个用例:
function myFindWhere(array, criteria) {
return array.find(item => Object.keys(criteria).every(key => item[key] === criteria[key]))
}
它 returns 输入数组中第一个匹配条件的所有已定义属性的项目(如果没有这样的项目,则 undefined
),我认为这是合同_.findWhere
.
以下是如何使用它来处理您的示例:
myFindWhere($scope.template, {id: $scope.approveTemplate})
下面是我用来测试它的几个测试用例:
myFindWhere([{"a":0, "b":1}, {"a":1}, {"b":1}], {"a":0})
> Object {a: 0, b: 1}
myFindWhere([{"a":0, "b":1}, {"a":1}, {"b":1}], {"b":0})
> undefined
myFindWhere([{"a":0, "b":1}, {"a":1}, {"b":1}], {"b":1})
> Object {a: 0, b: 1}
myFindWhere([{"a":0, "b":1}, {"a":1}, {"b":2}], {"b":2})
> Object {b: 2}