Byte flow is a pure dart , dependency less library that provides common utility functions for lists and strings .
dependencies:
byte_flow: ^1.0.0
After this run flutter pub get
Then import the library
import 'package:byte_flow/byte_flow.dart';
Byte flow contains helpful utility functions for lists and strings but it's main target is to provide developers rich set of list utilites .
First import the library like this
import 'package:byte_flow/byte_flow.dart' as _;
Creates an list of elements split into groups the length of size
. If list
can't be split evenly, the final chunk will be the remaining elements.
Example
_.chunk(['a', 'b', 'c', 'd'], 2);
// Returns ['a', 'b'],['c', 'd']
_.chunk(['a', 'b', 'c', 'd'], 3)
// Returns ['a', 'b', 'c'],['d']
Creates a slice of list
from start
up to, but not including, end
.
Example
_.slice([1, 2, 3, 4], 2);
// Returns [3, 4]
Creates an list with all falsey values removed. The values false
, null
,0
, ""
, and NaN
are falsey.
Example
_.compact([0, 1, false, 2, '', 3]);
// Returns [1, 2, 3]
_.compact([1, 2, 'some data', 2, '', 3, false, null]);
// Returns [1, 2, 'some data', 2, 3]
Creates a slice of list
with n
elements dropped from the beginning.
Example
_.drop([1, 2, 3]);
// Returns [2,3]
_.drop([1, 2, 3], 2);
// Returns [3]
_.drop([1, 2, 3], 5);
// Returns []
_.drop([1, 2, 3], 0);
// Returns [1, 2, 3]
Creates a slice of list
with n
elements dropRightped from the beginning.
Example
_.dropRight([1, 2, 3])
// Returns [1,2]
_.dropRight([1, 2, 3], 2)
// Returns [1]
_.dropRight([1, 2, 3], 5)
// Returns []
_.dropRight([1, 2, 3], 0)
// Returns [1, 2, 3]
Fills elements of list
with value
from start
up to, but not including, end
.
Example
_.fill(List(3), 4);
// Returns [4, 4, 4]
This method uses dart's default List.indexOf()
Example
_.findIndex(["Jack", "Yash", "Adib", "Alex"], "Adib");
// Returns 2
This method finds the item in the list from right / last using dart's List.indexOf()
method
Example
_.findLastIndex(["Jack", "Yash", "Adib", "Adib"], "Adib");
// Returns 0
Finds the first element in the list Uses dart's List.first
property
Example
_.head(["Dart", "Javascript", "Swift"]);
// Returns "Dart"
Flatten a list , Credit goes to Justin Fagnani
Example
_.flatten([
[1, 2, 3],
['a', 'b', 'c'],
[true, false, true]
]);
// Returns [1, 2, 3, 'a', 'b', 'c', true, false, true]
This method returns an map
composed from key-value pairs
.
Example
_.pairs([
['a', 1],
['b', 2]
]);
// Returns {'a': 1, 'b': 2}
Gets all but the last element of list.
Example
_.initial([1, 2, 3]);
// Returns [1, 2]
_.initial([1, 2, 3, 'a', 'b', 'c']);
// Returns [1, 2, 3, 'a', 'b']
Creates an list of values by running each element of list
thru iteratee
. The iteratee is invoked with three arguments: (value, index, list).
Example
square(n, index, list) {
return n*n;
}
_.map([4, 8], square);
// Returns [16, 64]
_.map([4, 8], (n, index, list) {
return n * 0;
});
// Returns [0, 0]
Creates an list of unique values that are included in all given arrays
Example
final lists = [
[1, 2, 3],
[2, 4, 5],
[2, 8, 9]
];
_.intersect(lists);
// Returns [2]
Converts all elements in list into a string separated by separator. Uses dart's List.join()
Example
_.join(['a', 'b', 'c'], '~');
// Returns 'a~b~c'
Gets the last element of list. Uses dart's List.last
property
Example
_.last(["Dart", "Javascript", "Swift"]);
// Returns "Swift"
Gets the element at index n
of list
. If n
is negative, the nth element from the end is returned.
Example
_.nth(['a', 'b', 'c', 'd'], 2);
// Returns 'c'
_.nth(['a', 'b', 'c', 'd'], -1);
// Returns 'd'
Uses a binary search to determine the lowest index at which value should be inserted into list in order to maintain its sort order. Returns the index at which value should be inserted into list.
Example
_.sortedIndex([30, 50], 60);
// Returns 2
_.sortedIndex([30, 50], 40);
// Returns 1
_.sortedIndex([30, 50], 30);
// Returns 0
Gets all but the first element of list.
Example
_.tail([1, 2, 3]);
// Returns [2, 3]
Creates a slice of list with n elements taken from the beginning. Uses dart's native List.take(n)
method
Example
_.take([1, 2, 3], 2);
// Returns [1, 2]
Creates a slice of list with n elements taken from the end.
Example
takeRight([1, 2, 3])
// => [3]
takeRight([1, 2, 3], 2)
// => [2, 3]
takeRight([1, 2, 3], 5)
// => [1, 2, 3]
takeRight([1, 2, 3], 0)
// => []
Creates an list of unique values, in order
Example
_.union([
[2],
[1, 2]
]);
// Returns [2, 1]
This method Returns the new list of regrouped elements
Example
_.unzip([['a', 1, true], ['b', 2, false]]);
// Returns [['a', 'b'], [1, 2], [true, false]]
Zips two arrays , Credit
Example
_.zip(['a', 'b', 'c'], [1, 2, 3]);
// Returns [['a', 1],['b', 2],['c', 3]]
Find duplicate items in an list .
Example
_.duplicate([10, 12, 9, 21, 1, 2, 10]);
// Returns [10]
Byte flow libraries string utility collection is poor but still under development . The following functions are stable
Capitalizes the given string
Example
_.capitalize("hello world !");
// Returns "Hello world !"
- Null safety
- Extension support