nev*_*evf 1 javascript linq object
我想在Javascript对象中搜索特定的键和值.恩.
var obj = { zulu: { a: 3, b: "b3", d: true } };
Run Code Online (Sandbox Code Playgroud)
找出obj是否包含a有价值的键3.该对象具有嵌套对象和嵌套对象数组,a: 3可以在对象图中的任何位置和多个位置.
所以我不能简单测试:if ( zulu.a == 3 )因为a可以在对象图中的多个位置.
我认为linq.js看起来非常有前景,但是在查询对象时,它似乎并没有下降到嵌套对象中.那说我是linq的完全新手,可能会遗漏一些东西.
我可以(并且有)编写代码来迭代处理这个的对象图,但是我想找到一个像linq这样的通用库,它可以让我对任何JS对象执行即席查询.
小智 5
我是linq.js的创造者.http://linqjs.codeplex.com/
也许你可以使用遍历嵌套图的"CascadeDepthFirst".
var obj = { zulu: { a: 3, b: "b3", d: true } };
var query = Enumerable.From(obj)
.CascadeDepthFirst(function (kvp)
{
return (kvp.Value instanceof Object) ? kvp.Value : []
});
// query.ToArray() is
[0] = {Key: "zulu", Value: { a: 3, b: "b3", d: true }}
[1] = {Key: "a", Value: 3}
[2] = {Key: "b", Value: "b3"}
[3] = {Key: "d", Value: true}
// arrangement
var exists = query.Any("$.Key == 'a' && $.Value == '3'");
Run Code Online (Sandbox Code Playgroud)