mirror of
https://github.com/whoisclebs/lodash.git
synced 2026-02-09 10:27:49 +00:00
Ensure _.intersection handles non-array secondary values correctly.
This commit is contained in:
@@ -2696,7 +2696,10 @@
|
|||||||
* _.intersection([1, 2, 3], [5, 2, 1, 4], [2, 1]);
|
* _.intersection([1, 2, 3], [5, 2, 1, 4], [2, 1]);
|
||||||
* // => [1, 2]
|
* // => [1, 2]
|
||||||
*/
|
*/
|
||||||
function intersection() {
|
function intersection(array) {
|
||||||
|
if (!array) {
|
||||||
|
return [];
|
||||||
|
}
|
||||||
var args = [],
|
var args = [],
|
||||||
argsIndex = -1,
|
argsIndex = -1,
|
||||||
argsLength = arguments.length,
|
argsLength = arguments.length,
|
||||||
@@ -2710,9 +2713,10 @@
|
|||||||
if (isArray(value) || isArguments(value)) {
|
if (isArray(value) || isArguments(value)) {
|
||||||
args.push(value);
|
args.push(value);
|
||||||
caches.push(prereq && value.length >= 120 &&
|
caches.push(prereq && value.length >= 120 &&
|
||||||
createCache(argsIndex ? args[argsIndex] : seen));
|
createCache(argsIndex ? value : seen));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
argsLength = args.length;
|
||||||
var array = args[0],
|
var array = args[0],
|
||||||
index = -1,
|
index = -1,
|
||||||
length = array ? array.length : 0,
|
length = array ? array.length : 0,
|
||||||
|
|||||||
@@ -3524,7 +3524,8 @@
|
|||||||
});
|
});
|
||||||
|
|
||||||
test('should ignore individual secondary values', 1, function() {
|
test('should ignore individual secondary values', 1, function() {
|
||||||
deepEqual(_.intersection([1, null, 3], 3, null), []);
|
var array = [1, null, 3];
|
||||||
|
deepEqual(_.intersection([1, null, 3], 3, null), array);
|
||||||
});
|
});
|
||||||
}());
|
}());
|
||||||
|
|
||||||
@@ -9212,7 +9213,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
deepEqual(_.difference(array, null), array, message('difference'));
|
deepEqual(_.difference(array, null), array, message('difference'));
|
||||||
deepEqual(_.intersection(array, null), [], message('intersection'));
|
deepEqual(_.intersection(array, null), array, message('intersection'));
|
||||||
deepEqual(_.union(array, null), array, message('union'));
|
deepEqual(_.union(array, null), array, message('union'));
|
||||||
});
|
});
|
||||||
}(1, null, [3], null, 5));
|
}(1, null, [3], null, 5));
|
||||||
|
|||||||
Reference in New Issue
Block a user