Clase utilitario con algunos metodospara el tratamiento de arreglos con JavaScript
Se agrega la clase;
<script src="js/arrayUtil.js"></script>
Instancia de la clase y estará listo para usarla;
let util = new ArrayUtil();
- arrayToCSV
- countOccurrences
- filterNonUniqueBy
- filterNonUnique
- intersection
- intersectionBy
- isSorted
- join
- last
- longestItem
- reducedFilter
- similarity
- symmetricDifference
- uniqueElements
- uniqueElementsBy
util.arrayToCSV([['a', 'b'], ['c', 'd']]);
//out
"a","b"
"c","d"
util.countOccurrences(['foo', 'bar', 'loremp', 'mesa', 'foo', 'foo', 'any', 'foo'], 'foo');
util.countOccurrences([1, 1, 2, 1, 2, 3], 1);
//out
4
3
let data = [
{ id: 0, value: 'a' },
{ id: 1, value: 'b' },
{ id: 2, value: 'c' },
{ id: 1, value: 'd' },
{ id: 0, value: 'e' }
];
util.filterNonUniqueBy(data, (a, b) => a.id == b.id);
//out
0: {id: 2, value: "c"};
util.filterNonUnique([1, 1, 2, 1, 2, 3]);
util.filterNonUnique(['foo', 'bar', 'loremp', 'mesa', 'foo', 'foo', 'any', 'foo']);
//out
[3]
["bar", "loremp", "mesa", "any"]
util.intersection([1, 2, 3], [4, 3, 2]);
//out
[2, 3]
util.intersectionBy([1, 2, 3], [4, 3, 2], Math.floor);
//out
[2, 3]
util.isSorted([0, 1, 2, 2]);
util.isSorted([4, 3, 2]);
util.isSorted([4, 3, 5]);
//out
1 //asc
-1 //desc
0 //no sorted
util.join(['pen', 'pineapple', 'apple', 'pen'], ',', '&');
util.join(['pen', 'pineapple', 'apple', 'pen'], ',');
util.join(['pen', 'pineapple', 'apple', 'pen']);
//out
pen,pineapple,apple&pen
pen,pineapple,apple,pen
pen,pineapple,apple,pen
util.last(['foo', 'bar', 'loremp', 'mesa', 'foo', 'foo', 'any', 'foo']);
//out
foo
util.longestItem('this', 'is', 'a', 'testcase');
util.longestItem(...['a', 'ab', 'abc']);
util.longestItem(...['a', 'ab', 'abc'], 'abcd');
util.longestItem([1, 2, 3], [1, 2], [1, 2, 3, 4, 5]);
util.longestItem([1, 2, 3], 'foobar');
//out
testcase
71 abc
72 abcd
[1, 2, 3, 4, 5]
foobar
const data = [
{
id: 1,
name: 'albert',
age: 24
},
{
id: 2,
name: 'giant',
age: 50
}
];
reducedFilter(data, ['id', 'name'], item => item.age > 24);
//out
[{ id: 2, name: 'giant'}]
util.similarity(['any', 'bar', 'foo'], ['foo', 'loremp', 'ipsu']);
//out
["foo"]
util.symmetricDifference([1, 2, 3], [1, 2, 4]);
util.symmetricDifference([1, 2, 2], [1, 3, 1]);
//out
[3, 4]
[2, 2, 3]
util.uniqueElements([1, 2, 2, 3, 4, 4, 5]);
util.uniqueElements(['foo', 'bar', 'any', 'foo', 'foo']);
//out
[1, 2, 3, 4, 5]
["foo", "bar", "any"]
let array = [
{ id: 0, value: 'a' },
{ id: 1, value: 'b' },
{ id: 2, value: 'c' },
{ id: 1, value: 'd' },
{ id: 0, value: 'e' }
];
result = util.uniqueElementsBy(array, (a, b) => a.id == b.id);
// out
[
0: {id: 0, value: "a"}
1: {id: 1, value: "b"}
2: {id: 2, value: "c"}
];
Basado en 30-seconds-of-code ♥