Javascript 排序没有数据参考点的相关数组

Javascript 排序没有数据参考点的相关数组,javascript,arrays,Javascript,Arrays,因此,我使用Chart.js库来可视化一些数据。我已经计算了这么多类型的实例,并将它们存储在这样一个对象中。问题是,我现在希望对这些值进行排序,但没有参考点 js使用标签、数据和单独的数组,因此这就是我提出的解决方案。在您希望对数据进行排序之前,它非常有效。第一个标签用于第一个数据等 什么是更好的解决方案 var apertures = { "labels": ["example", "exmple"], "data": [4, 18] } 我想用标签存储数据,但我不知道如何让Chart.js

因此,我使用Chart.js库来可视化一些数据。我已经计算了这么多类型的实例,并将它们存储在这样一个对象中。问题是,我现在希望对这些值进行排序,但没有参考点

js使用标签、数据和单独的数组,因此这就是我提出的解决方案。在您希望对数据进行排序之前,它非常有效。第一个标签用于第一个数据等

什么是更好的解决方案

var apertures = { "labels": ["example", "exmple"], "data": [4, 18] }
我想用标签存储数据,但我不知道如何让Chart.js像那样发挥魔力

var chartAperture = new Chart(ctx, {
    type: 'bar',
    data: {
      labels: apertures.labels,
      datasets: [{
          label: 'Dataset 1',
          backgroundColor: "rgba(255,225,0,0.5)",
          borderColor: "#ffe100",
          borderWidth: 1,
          data: apertures.data
      }]
    } ...
提前谢谢

我想, 这是编写自己的函数来为chart.js排序数据的更好选项

您可以参考以下内容:


这里是数据。sort函数用于对数据进行排序,

好的,我将分三步完成

步骤1:创建具有标签/值对象的数组:

var step1 = apertures.labels.map(function (label, idx) {
  return { label: label, value: apertures.data[idx] }
});
第2步:排序:

var step2 = step1.sort(function (i1, i2) { 
  //i1 - i2 or i2 - i1 determines acceding or descending order 
  return i1.value - i2.value;
});
步骤3:还原对象:

var step3 = step2.reduce(function (result, item) {
  result.labels.push(item.label);
  result.data.push(item.value);
  return result;
}, { labels: [], data: [] })
您可以这样链接:

var step3 = apertures.labels
  .map(<function step 1>)
  .sort(<function step 2>)
  .reduce(<function step 3>);
var step3=孔径标签
.map()
.sort()
.reduce();

您必须对表格数据进行排序,并返回新的索引而不是值。然后,只需将索引值推送到新的光圈对象中并返回它。请参见以下示例:

const-apertures={“标签”:[“a”、“b”、“c”、“d”、“e”],“数据”:[4,18,0345,1]}
函数sortByIncreasingOrder({labels,data}){
const newindex=新数组(data.length)
for(设i=0;i(数据[a]<数据[b])?-1:1
newindex.sort(myPersonnalOrder)
log(“新索引:”+newindex)
常量SortedPertures={“标签”:[],“数据”:[]}
newindex.forEach((值,索引)=>{
SortedPertures.labels[索引]=孔径.标签[值]
SortedPertures.data[索引]=孔径.data[值]
})
返回分拣机
}

console.log(sortByIncreasingOrder(apertures))
您的意思是,在排序之前,第一个标签对应于第一个数据吗?@ThéophilePace I do您想如何对它们进行排序?通过增加顺序,我假设?我对使用map感到兴奋,但在第2步
无法读取未定义的属性“push”。reduce.lables
它会这样工作,让我看看错误…修复了,两个拼写错误…哈哈,我要发疯了,这怎么不起作用,
标签
…看起来很棒,但是函数基于库的版本1,并且在图表对象中已经移动了相当多的位置。