UNPKG

650 BJavaScriptView Raw
1var is = require('../lang/is');
2var isArray = require('../lang/isArray');
3var every = require('./every');
4
5 /**
6 * Compares if both arrays have the same elements
7 */
8 function equals(a, b, callback){
9 callback = callback || is;
10
11 if (!isArray(a) || !isArray(b)) {
12 return callback(a, b);
13 }
14
15 if (a.length !== b.length) {
16 return false;
17 }
18
19 return every(a, makeCompare(callback), b);
20 }
21
22 function makeCompare(callback) {
23 return function(value, i) {
24 return i in this && callback(value, this[i]);
25 };
26 }
27
28 module.exports = equals;
29
30