Библиотека
Есть TrimQuery :
Для богатых разработчиков веб-приложений движок TrimQuery от TrimPath - это легкий компонент с открытым исходным кодом GPL / APL, который позволяет использовать SQL-запросы во время работы в веб-браузере.
Нет библиотеки
... хотя для вашей заявленной цели, кажется, достаточно легко зацикливаться на массиве объектов, возможно, используя один из новых методов ES5 Array
, таких как filter
(которые достаточно просты для добавить при запуске в браузере, который не имеет собственных копий). Например, если у вас есть массив объектов, представляющих автомобили, это дает вам синие:
// Get only blue cars
var blueCars = store.filter(function(entry) {
return entry.color === "blue";
});
Живой пример
Или, если вы не хотите беспокоиться о добавлении filter
в старые браузеры, просто используйте простой цикл for
:
var blueCars, index, entry;
blueCars = [];
for (index = 0; index < store.length; ++index) {
entry = store[index];
if (entry && entry.color === "blue") {
blueCars.push(entry);
}
}
Вот store
Я использую любой из них против:
// The data store
var store = [
{color: "blue", make: "Toyota"},
{color: "red", make: "Toyota"},
{color: "green", make: "Toyota"},
{color: "blue", make: "Ford"},
{color: "silver", make: "Ford"},
{color: "blue", make: "Jaguar"},
{color: "red", make: "Jaguar"},
{color: "green", make: "Fiat"}
];
А вот как добавить filter
, если его изначально нет (реализация не по назначению, вы можете поискать библиотеки типа es5-shim , которые пытаются выполнить более тщательную работу, или просто используйте простой цикл for
):
// Add `filter` if not already there
if (typeof Array.prototype.filter === "undefined") {
(function() {
display("(Added <code>filter</code>, browser didn't have it natively)");
function Array$filter(callback, thisArg) {
var index, value, result;
result = [];
for (index = 0; index < this.length; ++index) {
if (this.hasOwnProperty(index)) {
value = this[index];
if (callback.call(thisArg, value, index, this)) {
result.push(value);
}
}
}
return result;
}
if (typeof Object.defineProperty !== "undefined") {
Object.defineProperty(Array.prototype, "filter", {
enumerable: false
});
}
else {
Array.prototype.filter = Array$filter;
}
})();
}