deepEqualsList function

bool deepEqualsList(
  1. List la,
  2. List lb
)

Returns true if JSON Lists are deeply equal

Implementation

bool deepEqualsList(List<dynamic> la, List<dynamic> lb) {
  if (identical(la, lb)) return true;
  final length = la.length;
  if (length != lb.length) return false;
  for (var i = 0; i < length; i++) {
    final va = la[i];
    final vb = lb[i];

    // Common case first: equal primitives. Also short-circuits identical
    // Map/List instances, since their == is identity.
    if (va == vb) continue;

    if (va is Map<String, dynamic>) {
      if (vb is! Map<String, dynamic> || !deeplEquals(va, vb)) return false;
    } else if (va is List) {
      if (vb is! List || !deepEqualsList(va, vb)) return false;
    } else {
      return false;
    }
  }
  return true;
}