underscore.js 如何使用 _.filter 从 JSON 对象中获取元素
underscore.js how to get an element from a JSON object using _.filter
我有以下 JSOn 对象(元素数组)
var roles = [
{
"label": "alpha",
"children": [
{"label": "role1","title": "role1","value": "1"},
{"label": "role2","title": "role2","value": "2"}
]
},
{
"label": "beta",
"children": [
{"label": "role3","title": "role3","value": "3"},
{"label": "role4","title": "role4","value": "4"}
]
},
{
"label": "delta",
"children": [
{"label": "role5","title": "role5","value": "5"},
{"label": "role6","title": "role6","value": "6"}
]
}
]
我正在尝试获取(然后删除..)具有特定标签的元素
我定义了一个 where 对象
var where = {key: 'label', value:"alpha"};
然后我过滤对象 :
var filteredRoles = _.filter(roles, function (el) {
return el[where.key] && _.isArray(el[where.key]) &&
_.indexOf(el[where.key], where.value) >= 0;
});
console.log("found "+JSON.stringify(filteredRoles, null, 2));
但我无法获取它:found = []
我哪里错了?
感谢反馈
试试这个
var result = _.filter(roles, function(role) {
return (role[where.key] === where.value) && _.isArray(role['children']);
})
这是一个有效的 plunk
我有以下 JSOn 对象(元素数组)
var roles = [
{
"label": "alpha",
"children": [
{"label": "role1","title": "role1","value": "1"},
{"label": "role2","title": "role2","value": "2"}
]
},
{
"label": "beta",
"children": [
{"label": "role3","title": "role3","value": "3"},
{"label": "role4","title": "role4","value": "4"}
]
},
{
"label": "delta",
"children": [
{"label": "role5","title": "role5","value": "5"},
{"label": "role6","title": "role6","value": "6"}
]
}
]
我正在尝试获取(然后删除..)具有特定标签的元素
我定义了一个 where 对象
var where = {key: 'label', value:"alpha"};
然后我过滤对象 :
var filteredRoles = _.filter(roles, function (el) {
return el[where.key] && _.isArray(el[where.key]) &&
_.indexOf(el[where.key], where.value) >= 0;
});
console.log("found "+JSON.stringify(filteredRoles, null, 2));
但我无法获取它:found = []
我哪里错了?
感谢反馈
试试这个
var result = _.filter(roles, function(role) {
return (role[where.key] === where.value) && _.isArray(role['children']);
})
这是一个有效的 plunk