Vue:如何在数组中找到最接近的较高和较低值?

时间:2018-03-22 11:03:19

标签: javascript arrays vue.js

我目前正在开发一个Vue.js应用程序。我有一个指定的值,我需要找到最接近的较高值和最接近的较低值。但是我如何在Vue函数中做到这一点?

这只是代码的一部分,尽可能多地描述问题。实际问题位于“new Vue”下的第二个计算函数中。

首先,我使用orderedByPosition函数对数组进行排序。在那之后,我试图找出我需要的两个值。现在,问题开始了......问题的一部分是信息:
“[Vue警告]:计算属性”计算“缺少Getter。我进入Chrome浏览器控制台。

HTML

<div id="results">
  {{ higher }} {{ subject }} {{ lower }}
</div>

Vue.js

let subject;
let number;
let closest;
let higherValue;
let lowerValue
let you = [];
let cArray = [];

dummyList = [{
       goals: 42,
  },
  {
        goals: 20,
  },
  {
        goals: 15,
  },
  {
        goals: 5,
  }
];

subject = 16;

Vue.component('Donegoals', {

  data: function() {
    return {
      higher: higherValue,
      subject: subject,
      lower: lowerValue
    }
  }
});
new Vue({
  el: '#results',
  data: {
    cArray: dummyList
  },
  computed: {
    orderedByPosition: function() {
      return _.sortBy(this.cArray, 'goals')
    },
    computed: {  // Here is the function that is not working correctly
      closest: function(closest) {
        closest = this.cArray.sort((a, b) => Math.abs(subject - a) - Math.abs(subject - b))[0];

        if (closest > subject || closest === subject) {
          higherValue = closest
        } else {
          lowerValue = closest
        }
      },
    },
  },
});

0 个答案:

没有答案