好吧,我被困在这里,我很感激我可以用这些方法完成的方法。
我有一个问题的数组:
questions: [
{
question: 'lala',
answer: 'papa',
categories: ['Handla']
},
{
question: 'xxxx',
answer: 'yyyy',
categories: ['Reklamation']
}
]
根据类别,我希望能够在过滤时相应地列出问题。
所以我想说我想过滤'Handla'我应该能够循环出所有在类别数组中匹配'Handla'值的问题。
通过问题数组进行映射并使用if / else语句返回它们将起作用但我不确定这是最佳方式。
总结:我想迭代问题并挑选出与我想要的类别查询匹配的对象。
请求“重新启动”时我想要的输出应该是
const desiredArray = [{
{
question: 'xxxx',
answer: 'yyyy',
categories: ['Reklamation']
}
}]
答案 0 :(得分:3)
使用Array#filter并使用Array#includes检查Reklamation
数组中是否找到了类别(示例中的categories
):
const questions = [{"question":"lala","answer":"papa","categories":["Handla"]},{"question":"xxxx","answer":"yyyy","categories":["Reklamation"]}];
const result = questions.filter(({ categories }) => categories.includes('Reklamation'));
console.log(result);
答案 1 :(得分:1)
试试这个
var result = questions.filter((item) => item.categories.find((cat) => cat === 'Reklamation'))
答案 2 :(得分:1)
您可以将array#filter
与array.indexOf
一起使用。
var data = {questions: [{question: 'lala',answer: 'papa',categories: ['Handla']},{question: 'xxxx',answer: 'yyyy',categories: ['Reklamation']}]},
category = 'Reklamation',
result = data.questions.filter(({categories}) => categories.indexOf(category) > -1);
console.log(result);
答案 3 :(得分:1)