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

作者站长头像
站长
· 阅读数 8

有一个数组

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个回答
avatar
test
2024-07-13
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]
回复
likes
适合作为回答的
  • 经过验证的有效解决办法
  • 自己的经验指引,对解决问题有帮助
  • 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
  • 询问内容细节或回复楼层
  • 与题目无关的内容
  • “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容