1 | var is = require('../lang/is');
|
2 | var isArray = require('../lang/isArray');
|
3 | var every = require('./every');
|
4 |
|
5 | |
6 |
|
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 |
|