我有一个对象数组,每个对象都有非关联ID。
我想知道在给定整数的情况下是否可以找到下一个最接近的id值对象。
实施例
const array = [{id: 4}, {id: 10}, {id: 15}]
给定x
任何值,如果10 < x <= 15
,则应返回15
给定x
任何值,如果4 < x <= 10
,则应返回10
等等。
谢谢
答案 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}}找到最佳结果:
.reduce
&#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