js如何给数组里面添加的固定的值?

有一个数组

arr = [480, 678485, 121, 121, 121, 2461, 341010, 2799, 18457, 121, 274, 13409, 8431, 3455, 833623, 33111, 459]

数组里面的元素大小不固定和长度不固定,这里只是一个示例

想要通过获取这组数组的最大值和最小值来给这组数组分区间,比如说分五个区间
现有一组固定的数组 arr1 = [1, 3, 6, 8, 10] 把这个五个数
根据上面的区间分别替换掉对应的元素形成一个新的数组

这个逻辑应该怎么写

阅读 1.6k
1 个回答
function slimList(target, region){
    let min = Math.min.apply(null, target)
    let max = Math.max.apply(null, target)
    let length = region.length
    let step = (max - min) / length
    
    return target.map(item => region[Math.min((item - min) / step | 0, length - 1)])
}


let arr = [480, 678485, 121, 121, 121, 2461, 341010, 2799, 18457, 121, 274, 13409, 8431, 3455, 833623, 33111, 459]
let arr1 = [1, 3, 6, 8, 10]
slimList(arr, arr1)
// [1, 10, 1, 1, 1, 1, 6, 1, 1, 1, 1, 1, 1, 1, 10, 1, 1]

slimList([5, 8, 30, 38, 50], arr1)
// [1, 1, 6, 8, 10]
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题