我一直在寻找一种方法来执行复杂的查询,比如SQL可以执行,但完全是客户端.我知道我可以通过服务器上的SQL查询得到我想要的确切结果,我甚至可以使用它来使它看起来很流畅.但是,出于可扩展性,性能和带宽的原因,我宁愿在所有客户端执行此操作.
一些要求:
我查看了stackoverflow并找到了jslinq,但它最后一次更新是在2009年,没有文档.我也无法判断它是否可以执行更复杂的查询,例如在两个不同的列上进行排序或执行"和"或"或"过滤.
我认为这样的事情已经完成了.我知道HTML5从这条路开始,但后来遇到了障碍.我只需要基本的查询,没有连接或任何东西.有谁知道可以做到这一点的事情?谢谢.
编辑:我想我应该包括一个用例来帮助澄清我在寻找什么.
例如,我列出了美国5000个最大的城市.每条记录包括城市名称,州和人口.我希望能够下载整个数据集一次并使用它填充JS数组,然后,仅在客户端,能够运行如下的查询并从结果记录中创建一个表.
所有这些查询都可以通过SQL完成,但我不想继续往返于服务器,我也想允许离线使用.
我正在查看powershellpro.com上的一些代码示例,并且不明白他为什么编写通过以下方式循环遍历数组的示例代码:
...增量从零开始然后增加1,直到它小于或等于数组的长度减去1 ...
for ($i=0; $i -le $total-1; $i++)
Run Code Online (Sandbox Code Playgroud)
...而不是让增量从零开始然后再增加1直到它小于数组的长度......
for ($i=0; $i -lt $total; $i++)
Run Code Online (Sandbox Code Playgroud)
我错过了什么吗?它们在功能上是等效的,并且将循环遍历数组中的每个项目.我个人认为第二个版本更清洁.是否有最好的做法或者说你应该使用第一个?
我试图更改哈希表中特定项的值.我可以通过迭代整个对象,测试特定值的每一个键,然后在满足条件时更改它,如下所示:
for ($i=0; $i -le $haystack.length-1; $i++)
{
if ($haystack[$i].name -eq "needle")
{
$haystack[$i].currentstatus = "found"
}
}
Run Code Online (Sandbox Code Playgroud)
上面的代码可以工作,但似乎必须有一种更有效的方法来完成任务,特别是当大海捞针很大而且只有一根针时.
我试着使用where-object,可以找到我正在寻找的记录:
$haystack | where-object {$_.name -eq "needle"}
Run Code Online (Sandbox Code Playgroud)
这似乎比进行蛮力搜索要好得多,但我现在不知道如何获得该记录.如果我在数组中有索引,那么我可以轻松地使用它来编辑我想要的值,那么有没有办法获得数组索引?这通常是怎么做的?谢谢.