【发布时间】:2018-01-17 13:22:11
【问题描述】:
我遇到了一个问题,希望得到有关如何解决的反馈。
这是我的 JSON:
questions: [
{
question: 'lala',
answer: 'papa',
categories: ['Handla']
},
{
question: 'xxxx',
answer: 'yyyy',
categories: ['Reklamation']
},
{
question: 'abcefg',
answer: 'gooooogle',
categories: ['Reklamation']
}
]
我想遍历这个问题数组并将 ALL object.categories 附加到一个新数组,然后过滤掉重复的数组。所以基本上我的回答应该是:
["Handla", "Reklamation"]
【问题讨论】:
-
根本不是很好的复制品。这是可能的解决方案:
const categories = data.questions.reduce((prev, curr) => prev.concat(curr.categories), []).filter((category, index, array) => array.indexOf(category) === index). -
@dfsq 这比
vars cats=[]; for (var i = 0; i < questions.length; i++) { var cat = questions[i].categories[0]; if (cats.indexOf(cat) == -1) cats.push(cat); }更漂亮、更易读——我眼里含着泪;)
标签: javascript arrays ecmascript-6