Alasql select 在具有未知索引的数组中
Alasql select in arrary of array with uknown index
假设我有这个结构数据
data =[
{
"id":1,
"link":[
{
"id":3
},
{
"id":1
},
{
"id":2
}
]
},
{
"id":2,
"link":[
{
"id":30
},
{
"id":11
},
{
"id":22
}
]
}
]
我想看看我的结构是否有 link 和 id=11
"SELECT * FROM ? WHERE link->[1]->id=11"
工作但是因为我已经知道我必须签入索引 1。我如何签入所有索引?
SEARCH
功能要是完全实现就好了
alasql('SEARCH / link / WHERE(id=11) .. / .. FROM ?',[data]);
但是父 ..
选择器还没有实现。
我建议做一个(不完全优雅的)用户定义函数:
alasql.fn.deepSearch = function(id, obj){
return alasql("SEARCH / link / WHERE(id=?) FROM ?", [id, [obj]]).length
}
alasql('SELECT * FROM ? WHERE deepSearch(11,_)',[data]);
正确的代码是
alasql('SEARCH / AS @a link / WHERE(id=11) @a FROM ?',[data]);
这里 AS @a
将当前元素保存到变量 @a
中,第二个 @a
检索它。
假设我有这个结构数据
data =[
{
"id":1,
"link":[
{
"id":3
},
{
"id":1
},
{
"id":2
}
]
},
{
"id":2,
"link":[
{
"id":30
},
{
"id":11
},
{
"id":22
}
]
}
]
我想看看我的结构是否有 link 和 id=11
"SELECT * FROM ? WHERE link->[1]->id=11"
工作但是因为我已经知道我必须签入索引 1。我如何签入所有索引?
SEARCH
功能要是完全实现就好了
alasql('SEARCH / link / WHERE(id=11) .. / .. FROM ?',[data]);
但是父 ..
选择器还没有实现。
我建议做一个(不完全优雅的)用户定义函数:
alasql.fn.deepSearch = function(id, obj){
return alasql("SEARCH / link / WHERE(id=?) FROM ?", [id, [obj]]).length
}
alasql('SELECT * FROM ? WHERE deepSearch(11,_)',[data]);
正确的代码是
alasql('SEARCH / AS @a link / WHERE(id=11) @a FROM ?',[data]);
这里 AS @a
将当前元素保存到变量 @a
中,第二个 @a
检索它。