Javascript 如何在react中筛选唯一值?
我是个新手,所以请温柔一点。 我有一个相对扁平的JS文件,其中包含一些问题。看起来是这样的:Javascript 如何在react中筛选唯一值?,javascript,reactjs,Javascript,Reactjs,我是个新手,所以请温柔一点。 我有一个相对扁平的JS文件,其中包含一些问题。看起来是这样的: export default [ { category: 'General Questions', title: 'Question 1?', content:'Answer 1', }, { category: 'Pricing', title: 'Question 2?', content:'Answer 2', }, 我在整个文件中有多个类别。我想做的是创建一个所有独特类
export default [
{
category: 'General Questions',
title: 'Question 1?',
content:'Answer 1',
},
{
category: 'Pricing',
title: 'Question 2?',
content:'Answer 2',
},
我在整个文件中有多个类别。我想做的是创建一个所有独特类别的列表。所以用户只能看到
- 一般问题
- 定价
- 等等
过滤器功能获取所有内容:
getFaqContent() {
return filter(item => {
return item.featured;
}, Faqs);
}
我怎样才能得到唯一的类别 您可以再次使用.filter()
来选择唯一的类别(从以下帮助中获取):
const问题=[
{
类别:"一般问题",,
标题:"问题1",,
内容:"答案一",,
},
{
类别:“定价”,
标题:"问题2",,
内容:"答案二",,
},
{
类别:“定价”,
标题:"问题2",,
内容:"答案二",,
}];
const cats=questions.map(q=>q.category);
console.log(
cats.filter((q,idx)=>
cats.indexOf(q)==idx)
);
您可以再次使用.filter()
仅选择唯一类别(从以下帮助中获取):
const问题=[
{
类别:"一般问题",,
标题:"问题1",,
内容:"答案一",,
},
{
类别:“定价”,
标题:"问题2",,
内容:"答案二",,
},
{
类别:“定价”,
标题:"问题2",,
内容:"答案二",,
}];
const cats=questions.map(q=>q.category);
console.log(
cats.filter((q,idx)=>
cats.indexOf(q)==idx)
);代码>使用ES6的优雅解决方案:
const categories = yourList.map(x => x.category);
const uniqueCategories = [...new Set(categories)];
使用ES6的优雅解决方案:
const categories = yourList.map(x => x.category);
const uniqueCategories = [...new Set(categories)];
您可以使用reduce()
您可以调用uniqueBy(数组,'category')
其中array
将是您的数据
function uniqueBy(arr, prop){
return arr.reduce((a, d) => {
if (!a.includes(d[prop])) { a.push(d[prop]); }
return a;
}, []);
}
var categories = uniqueBy(array, 'category')
console.log(ages); //['General Questions', 'Pricing' ]
您可以使用reduce()
您可以调用uniqueBy(数组,'category')
其中array
将是您的数据
function uniqueBy(arr, prop){
return arr.reduce((a, d) => {
if (!a.includes(d[prop])) { a.push(d[prop]); }
return a;
}, []);
}
var categories = uniqueBy(array, 'category')
console.log(ages); //['General Questions', 'Pricing' ]
只需一个简短的说明,您可以在编写过滤器时使用更小的语法:Faqs.filter(item=>item.featured)
。只需一个简短的说明,您可以在编写过滤器时使用更小的语法:Faqs.filter(item=>item.featured)
。这非常有效!我可以安慰所有独特的猫。然而,我在打印它们时遇到了一个错误:数组或迭代器中的每个子元素都应该有一个唯一的“key”属性。是因为我没有每个问题的UID吗?请将您的密钥设置为我使用map
method获得的值(无论如何都应该是唯一的)。有关密钥属性的更多信息,请参见此:这非常有效!我可以安慰所有独特的猫。然而,我在打印它们时遇到了一个错误:数组或迭代器中的每个子元素都应该有一个唯一的“key”属性。是因为我没有每个问题的UID吗?请将您的密钥设置为我使用map
方法获得的值(无论如何都应该是唯一的)。有关密钥属性的更多信息,请参见此: