Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/444.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在react中筛选唯一值?_Javascript_Reactjs - Fatal编程技术网

Javascript 如何在react中筛选唯一值?

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', }, 我在整个文件中有多个类别。我想做的是创建一个所有独特类

我是个新手,所以请温柔一点。 我有一个相对扁平的JS文件,其中包含一些问题。看起来是这样的:

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
方法获得的值(无论如何都应该是唯一的)。有关密钥属性的更多信息,请参见此: