mirror of
https://github.com/whoisclebs/lodash.git
synced 2026-02-10 02:47:50 +00:00
Ensure _.intersection of a single array returns an empty array. [closes #1085]
This commit is contained in:
@@ -5094,7 +5094,8 @@
|
|||||||
argsLength = arguments.length,
|
argsLength = arguments.length,
|
||||||
caches = [],
|
caches = [],
|
||||||
indexOf = getIndexOf(),
|
indexOf = getIndexOf(),
|
||||||
isCommon = indexOf == baseIndexOf;
|
isCommon = indexOf == baseIndexOf,
|
||||||
|
result = [];
|
||||||
|
|
||||||
while (++argsIndex < argsLength) {
|
while (++argsIndex < argsLength) {
|
||||||
var value = arguments[argsIndex];
|
var value = arguments[argsIndex];
|
||||||
@@ -5104,10 +5105,12 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
argsLength = args.length;
|
argsLength = args.length;
|
||||||
|
if (argsLength < 2) {
|
||||||
|
return result;
|
||||||
|
}
|
||||||
var array = args[0],
|
var array = args[0],
|
||||||
index = -1,
|
index = -1,
|
||||||
length = array ? array.length : 0,
|
length = array ? array.length : 0,
|
||||||
result = [],
|
|
||||||
seen = caches[0];
|
seen = caches[0];
|
||||||
|
|
||||||
outer:
|
outer:
|
||||||
|
|||||||
16
test/test.js
16
test/test.js
@@ -6595,14 +6595,14 @@
|
|||||||
deepEqual(actual, [1, 2]);
|
deepEqual(actual, [1, 2]);
|
||||||
});
|
});
|
||||||
|
|
||||||
test('should return an array of unique values', 2, function() {
|
test('should return an array of unique values', 1, function() {
|
||||||
var array = [1, 1, 3, 2, 2];
|
var actual = _.intersection([1, 1, 3, 2, 2], [5, 2, 2, 1, 4], [2, 1, 1]);
|
||||||
deepEqual(_.intersection(array, [5, 2, 2, 1, 4], [2, 1, 1]), [1, 2]);
|
deepEqual(actual, [1, 2]);
|
||||||
deepEqual(_.intersection(array), [1, 3, 2]);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
test('should match `NaN`', 1, function() {
|
test('should match `NaN`', 1, function() {
|
||||||
deepEqual(_.intersection([1, NaN, 3], [NaN, 5, NaN]), [NaN]);
|
var actual = _.intersection([1, NaN, 3], [NaN, 5, NaN]);
|
||||||
|
deepEqual(actual, [NaN]);
|
||||||
});
|
});
|
||||||
|
|
||||||
test('should work with large arrays of objects', 1, function() {
|
test('should work with large arrays of objects', 1, function() {
|
||||||
@@ -6627,7 +6627,7 @@
|
|||||||
|
|
||||||
test('should ignore values that are not arrays or `arguments` objects', 3, function() {
|
test('should ignore values that are not arrays or `arguments` objects', 3, function() {
|
||||||
var array = [0, 1, null, 3];
|
var array = [0, 1, null, 3];
|
||||||
deepEqual(_.intersection(array, 3, null, { '0': 1 }), array);
|
deepEqual(_.intersection(array, 3, null, { '0': 1 }), []);
|
||||||
deepEqual(_.intersection(null, array, null, [2, 1]), [1]);
|
deepEqual(_.intersection(null, array, null, [2, 1]), [1]);
|
||||||
deepEqual(_.intersection(array, null, args, null), [1, 3]);
|
deepEqual(_.intersection(array, null, args, null), [1, 3]);
|
||||||
});
|
});
|
||||||
@@ -16405,7 +16405,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
deepEqual(_.difference(null, array), [], message('difference'));
|
deepEqual(_.difference(null, array), [], message('difference'));
|
||||||
deepEqual(_.intersection(null, array), array, message('intersection'));
|
deepEqual(_.intersection(null, array), [], message('intersection'));
|
||||||
deepEqual(_.union(null, array), array, message('union'));
|
deepEqual(_.union(null, array), array, message('union'));
|
||||||
deepEqual(_.xor(null, array), array, message('xor'));
|
deepEqual(_.xor(null, array), array, message('xor'));
|
||||||
});
|
});
|
||||||
@@ -16416,7 +16416,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
deepEqual(_.difference(array, null), array, message('difference'));
|
deepEqual(_.difference(array, null), array, message('difference'));
|
||||||
deepEqual(_.intersection(array, null), array, message('intersection'));
|
deepEqual(_.intersection(array, null), [], 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