如何创建另一个数组中存在的值的数组?

时间:2018-10-20 17:42:15

标签: javascript reactjs chart.js

我找不到可以帮助我的方法。 我有一个包含特定类别名称的支出列表和一个包含颜色的类别列表。 我在react应用程序中使用react-chartjs-2和chartjs。 我的问题是,尽管验证了费用顺序,但我通过验证consumer.category和category.name之间的匹配而创建的数组返回了相同的值顺序。 例如,如果函数返回2费用,则第一个顺序为:

费用1,费用2,
费用价值1,费用价值2,
费用颜色1,费用颜色2,

但是当我应用过滤器(例如按金额)并且顺序更改时,例如:

费用2,费用1,
费用价值2,费用价值1,
费用1的颜色,费用2的颜色...颜色不会改变顺序。

  const labels = props.expenses.map((expense) => capitalize(expense.category));

  const amounts = props.expenses.map((expense) => expense.amount/100 );

  let colors = [];
  props.expensesCategories.filter((category) => {
    labels.filter((label) => {
      label.toLowerCase() === category.name.toLowerCase() ? colors.unshift(category.color) : '#000'
    })
  });

此数据用于图表js的数据对象:

const data = {
    labels: labels,
    datasets: [{
      data: amounts,
      backgroundColor: colors
    }]
  };

我尝试了map,filter,forEach并尝试了push,unshift的colors数组。

如果您知道如何解决此问题,请告诉我。非常感谢

0 个答案:

没有答案