如何从此数组中找到user_value最接近的值?
这是根据此user_value变量,我需要从数组中找出最接近的值。

var user_value = 5500;
var array = [

    {_id: 5809e269d60f577ae35f6add,
      coins: 1000,
      is_active: 1,
      iconId: 4 },
    {_id: 5809e269d60f577ae35f6ade,
      coins: 2000,
      is_active: 1,
      iconId: 5 },
    {_id: 5809e269d60f577ae35f6adf,
      coins: 5000,
      is_active: 1,
      iconId: 6 },
    {_id: 5809e269d60f577ae35f6ae0,
      coins: 7000,
      is_active: 1,
      iconId: 7 },
    {_id: 5809e269d60f577ae35f6ae1,
      coins: 10000,
      is_active: 1,
      iconId: 8 },
    {_id: 5809e269d60f577ae35f6ae2,
      coins: 15000,
      is_active: 1,
      iconId: 9 } ];

最佳答案

您可以通过使用绝对差异进行检查来使用迭代方法。



var value = 5500,
    array = [{ _id: '5809e269d60f577ae35f6add', coins: 1000, is_active: 1, iconId: 4 }, { _id: '5809e269d60f577ae35f6ade', coins: 2000, is_active: 1, iconId: 5 }, { _id: '5809e269d60f577ae35f6adf', coins: 5000, is_active: 1, iconId: 6 }, { _id: '5809e269d60f577ae35f6ae0', coins: 7000, is_active: 1, iconId: 7 }, { _id: '5809e269d60f577ae35f6ae1', coins: 10000, is_active: 1, iconId: 8 }, { _id: '5809e269d60f577ae35f6ae2', coins: 15000, is_active: 1, iconId: 9 }],
    result = array.reduce(function (r, a, i, aa) {
        return i && Math.abs(aa[r].coins - value) < Math.abs(a.coins - value) ? r : i;
    }, -1);

console.log(result);

关于javascript - 使用JavaScript从数组对象元素中找到最近的值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44279103/

10-09 21:02