使用lodash获得最接近的prop的下一个值

时间:2018-03-22 18:29:18

标签: javascript arrays lodash

我有一个对象数组,每个对象都有非关联ID。

我想知道在给定整数的情况下是否可以找到下一个最接近的id值对象。

实施例

const array = [{id: 4}, {id: 10}, {id: 15}]

给定x任何值,如果10 < x <= 15,则应返回15

给定x任何值,如果4 < x <= 10,则应返回10

等等。

谢谢

3 个答案:

答案 0 :(得分:3)

如果您每次想要更高的那个,都可以检查一下。

找到id高于x的项目。另外我认为您首先需要根据id对数组进行排序,以便对未排序的数组进行排序。

const x = 5;
const array = [{id: 4}, {id: 10}, {id: 15}];

const max = array.sort((a,b) => a.id - b.id)
                 .find(item => item.id > x);

console.log(max);

答案 1 :(得分:3)

如果你的数组没有排序,并且你不想使用.sort方法(例如:可能因为你不想改变你的数组),你可以使用{ {1}}找到最佳结果:

&#13;
&#13;
.reduce
&#13;
&#13;
&#13;

答案 2 :(得分:2)

如果数组按id值排序,您可以使用Array.find()查找大于或等于id的第一个x

const array = [{id: 4}, {id: 10}, {id: 15}]

const findClosestId = (x) => (array.find(({ id }) => x <= id) || {}).id


console.log(findClosestId(11)); // 15
console.log(findClosestId(6)); // 10
console.log(findClosestId(100)); // undefined