【发布时间】:2016-09-28 17:32:35
【问题描述】:
我正在尝试使用 underscoreJs 来操作 JavaScript 对象并遇到问题。
这是我的例子
var data = {
"label": "SomeName",
"parent": [{
"id": "parentId",
"resources": [{
"name": "ID1NAME",
"calls": [
"user_get", "user2_post", "user3_delete"
]
}, {
"name": "ID2",
"calls": [
"employee1_get", "employee2_delete", "employee3_update"
]
}]
}]
};
var res = _(data).chain().
pluck('parent').
flatten().
findWhere(function(item){
item === "user_get"
}).
value();
console.log(res);
使用属于data.parent.calls[] 的元素(例如:“user_get”)我想提取其父对象,即data.parent[0]。
我在上面尝试过,但总是不确定。感谢您对此提供的任何帮助。
【问题讨论】:
-
您是否有机会将您的 JSON 包装到一个数组中?由于 Underscore 使用集合(其中确实包含一个包含所有类型对象的数组),将您的 JSON 写入一个数组将解决您的问题。 codepen.io/anon/pen/WGroRm?editors=0011
-
@torazburo 感谢您的建议。我肯定知道 parse 和 JSON 的含义。我可能错误地使用了 parse 这个词,但我将其称为 JSON 文档的意图是正确的,因为我一直在处理 JSON 文档。我通过跳过将 JSON 文档解析为 Javascript 对象的部分给出了一个示例。另外,恕我直言,您使用的操纵词不正确,提取会很好。我尊重他人:)
标签: javascript underscore.js lodash