首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >过滤器数组,获取列表

过滤器数组,获取列表
EN

Stack Overflow用户
提问于 2020-01-09 02:55:24
回答 1查看 43关注 0票数 1

我有一个这样的数组:

代码语言:javascript
运行
复制
["q1":[{"key_api":86,"question_api":"q1","answer_api":"a1"},{"key_api":87,"question_api":"q1","answer_api":"a2"},{"key_api":88,"question_api":"q1","answer_api":"a3"},{"key_api":89,"question_api":"q1","answer_api":"a4"}],
"q2":[{"key_api":90,"question_api":"q2","answer_api":"a5"},{"key_api":91,"question_api":"q2","answer_api":"a7"}{"key_api":92,"question_api":"q2","answer_api":"a9"}],
"q3":[{"key_api":93,"question_api":"q3","answer_api":"a1"},{"key_api":94,"question_api":"q3","answer_api":"a2"},{"key_api":95,"question_api":"q3","answer_api":"a3"},{"key_api":96,"question_api":"q3","answer_api":"a4"}],
"q4":[{"key_api":97,"question_api":"q4","answer_api":"a10"},{"key_api":98,"question_api":"q4","answer_api":"a11"},{"key_api":99,"question_api":"q4","answer_api":"a12"},{"key_api":100,"question_api":"q4","answer_api":"a13"}]]

另外,我还有这个字符串:

代码语言:javascript
运行
复制
"q4"

我想过滤数组,获得这个列表(实际上,第三个问题的可能答案):

代码语言:javascript
运行
复制
["a10", "a11", "a12", "a13"]

如果可能的话,我更喜欢原生js (但如果它涉及大量代码,我可以考虑使用库)。我使用js已经有一周了:像这样的操作在Python中感觉很自然,但在这里我遇到了麻烦。非常感谢!

EN

Stack Overflow用户

发布于 2020-01-09 02:59:09

假设您提供的初始JSON实际上是一个由数组属性组成的对象(因为JSON数组不能有属性),您只需在对象的一个属性上使用Array.prototype.map

代码语言:javascript
运行
复制
   const dataObject = {
"q1": [{ "key_api": 86, "question_api": "q1", "answer_api": "a1" }, { "key_api": 87, "question_api": "q1", "answer_api": "a2" }, { "key_api": 88, "question_api": "q1", "answer_api": "a3" }, { "key_api": 89, "question_api": "q1", "answer_api": "a4" }],
"q2": [{ "key_api": 90, "question_api": "q2", "answer_api": "a5" }, { "key_api": 91, "question_api": "q2", "answer_api": "a7" }, { "key_api": 92, "question_api": "q2", "answer_api": "a9" }],
"q3": [{ "key_api": 93, "question_api": "q3", "answer_api": "a1" }, { "key_api": 94, "question_api": "q3", "answer_api": "a2" }, { "key_api": 95, "question_api": "q3", "answer_api": "a3" }, { "key_api": 96, "question_api": "q3", "answer_api": "a4" }],
"q4": [{ "key_api": 97, "question_api": "q4", "answer_api": "a10" }, { "key_api": 98, "question_api": "q4", "answer_api": "a11" }, { "key_api": 99, "question_api": "q4", "answer_api": "a12" }, { "key_api": 100, "question_api": "q4", "answer_api": "a13" }]
};
console.log(dataObject['q4'].map(item => item.answer_api));

如果您想对对象中的所有条目/键执行此操作,则可以通过迭代返回值将其与Object.keys结合使用,如下所示:

代码语言:javascript
运行
复制
const dataObject = {
    "q1": [{ "key_api": 86, "question_api": "q1", "answer_api": "a1" }, { "key_api": 87, "question_api": "q1", "answer_api": "a2" }, { "key_api": 88, "question_api": "q1", "answer_api": "a3" }, { "key_api": 89, "question_api": "q1", "answer_api": "a4" }],
    "q2": [{ "key_api": 90, "question_api": "q2", "answer_api": "a5" }, { "key_api": 91, "question_api": "q2", "answer_api": "a7" }, { "key_api": 92, "question_api": "q2", "answer_api": "a9" }],
    "q3": [{ "key_api": 93, "question_api": "q3", "answer_api": "a1" }, { "key_api": 94, "question_api": "q3", "answer_api": "a2" }, { "key_api": 95, "question_api": "q3", "answer_api": "a3" }, { "key_api": 96, "question_api": "q3", "answer_api": "a4" }],
    "q4": [{ "key_api": 97, "question_api": "q4", "answer_api": "a10" }, { "key_api": 98, "question_api": "q4", "answer_api": "a11" }, { "key_api": 99, "question_api": "q4", "answer_api": "a12" }, { "key_api": 100, "question_api": "q4", "answer_api": "a13" }]
};
Object.keys(dataObject).forEach(key => {
    console.log(dataObject[key].map(item => item.answer_api));
})

票数 2
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59652186

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档