js 输入一个数值,返回数组项最接近的一项

匿名 (未验证) 提交于 2019-12-03 00:03:02
<template>   <div></div> </template>  <script> export default {   data() {     return {       arr: [1, 56, 544, 2, 46, 98, 5, 7, 45]     };   },   created() {     console.log(this.lookup(this.arr, 0));   },   methods: {     lookup(array, value) {       // 将原数组复制,不会影响原数组       let arr = array.concat([]);       arr.push(value);       // 数据排序       arr.sort((a, b) => {         return a - b;       });       let index = arr.indexOf(value);       // 当前项在数组第一项 / 最后一项,返回当前项的后一项 / 前一项       if (index === 0) {         return arr[index + 1];       } else if (index === array.length - 1) {         return arr[index - 1];       }       // 当前项和前一项或者后一项比较,返回差值小的项       let resultIndex =         arr[index] - arr[index - 1] > arr[index + 1] - arr[index]           ? index + 1           : index - 1;       return arr[resultIndex];     }   } }; </script> 
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!