Introduction to jsinq
jsinq is a powerful JavaScript library that brings SQL-like query capabilities to JavaScript. It allows you to perform complex data manipulations and queries efficiently over arrays and other enumerable data structures. By using jsinq, developers can write clean, readable, and maintainable code when handling collections of data.
Useful jsinq API Examples
1. Initializing a Query
// Initialize a query
var query = new jsinq.Query()
.from(data_array);
2. Selecting Data
// Select specific fields
var names = new jsinq.Query()
.from(data_array)
.select(function (item) { return item.name; })
.execute();
3. Filtering Data
// Filter using where clause
var filtered = new jsinq.Query()
.from(data_array)
.where(function (item) { return item.age > 30; })
.execute();
4. Grouping Data
// Group items by a field
var groupedByCountry = new jsinq.Query()
.from(data_array)
.groupBy(function (item) { return item.country; })
.execute();
5. Joining Data
// Join two data sets
var joined = new jsinq.Query()
.from(people)
.join(countries,
function(person) { return person.countryId; },
function(country) { return country.id; },
function(person, country) { return { person: person.name, country: country.name }; })
.execute();
6. Ordering Data
// Order by a specific field
var ordered = new jsinq.Query()
.from(data_array)
.orderBy(function (item) { return item.name; })
.execute();
7. Using Aggregates
// Applying aggregates like sum, count, and average
var totalAge = new jsinq.Query()
.from(data_array)
.sum(function (item) { return item.age; })
.execute();
var averageAge = new jsinq.Query()
.from(data_array)
.average(function (item) { return item.age; })
.execute();
var itemCount = new jsinq.Query()
.from(data_array)
.count()
.execute();
Example Application Using jsinq
var items = [
{ name: 'John', age: 25, country: 'USA' },
{ name: 'Jane', age: 30, country: 'UK' },
{ name: 'Jack', age: 35, country: 'Canada' },
{ name: 'Jill', age: 28, country: 'Australia' }
];
var countryGroups = new jsinq.Query()
.from(items)
.groupBy(function (item) { return item.country; })
.select(function (group) {
return {
country: group.key,
members: group.elements
};
})
.execute();
console.log(countryGroups);
/* Expected Output
[
{ country: 'USA', members: [ { name: 'John', age: 25, country: 'USA' } ] },
{ country: 'UK', members: [ { name: 'Jane', age: 30, country: 'UK' } ] },
{ country: 'Canada', members: [ { name: 'Jack', age: 35, country: 'Canada' } ] },
{ country: 'Australia', members: [ { name: 'Jill', age: 28, country: 'Australia' } ] }
]
*/
Hash: 5f118dbd08b4f03dce21cd80e58d8ce0035f202b7a8cfb87d217c33bef7d1a3d