Skip to content

Commit 27bb331

Browse files
committed
fix filterBy multiple keys (fix vuejs#1479)
1 parent b07cbb9 commit 27bb331

File tree

2 files changed

+5
-4
lines changed

2 files changed

+5
-4
lines changed

src/filters/array-filters.js

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,12 +39,11 @@ exports.filterBy = function (arr, search, delimiter /* ...dataKeys */) {
3939
if ((key === '$key' && contains(item.$key, search)) ||
4040
contains(Path.get(val, key), search)) {
4141
res.push(item)
42+
break
4243
}
4344
}
44-
} else {
45-
if (contains(item, search)) {
46-
res.push(item)
47-
}
45+
} else if (contains(item, search)) {
46+
res.push(item)
4847
}
4948
}
5049
return res

test/unit/specs/filters/filters_spec.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,8 @@ describe('Filters', function () {
151151
]
152152
// multiple string keys
153153
var res
154+
res = filter(arr, '', 'in', 'firstname', 'lastname')
155+
assertArray(res, [arr[0], arr[1], arr[2]])
154156
res = filter(arr, 'A', 'in', 'firstname', 'lastname')
155157
assertArray(res, [arr[0], arr[2]])
156158
// array of keys

0 commit comments

Comments
 (0)