数组整合问题,一个大小不固定和长度不固定数组,根据另一个数组去赋值

该博客介绍了一个JavaScript方法,用于根据数组的最大值和最小值创建等间距区间,并使用另一个数组的值进行替换。示例中展示了如何将一个数字数组按区间分段,并用预定义的数值数组进行填充,最后返回新的数组。方法包括计算最小值、最大值、区间步长,并应用映射操作。
摘要由CSDN通过智能技术生成

今天,在思否上看见一个这个问题,
有一个数组:
arr = [480, 678485, 121, 121, 121, 2461, 341010, 2799, 18457, 121, 274, 13409, 8431, 3455, 833623, 33111, 459]
数组里面的元素大小不固定和长度不固定,这里只是一个示例。
想要通过获取这组数组的最大值和最小值来给这组数组分区间,比如说分五个区间。
现有一组固定的数组 arr1 = [1, 3, 6, 8, 10] 把这个五个数,根据上面的区间分别替换掉对应的元素形成一个新的数组。

<template>
    <div>
        
    </div>
</template>
  
<script>
    export default {
      data() {
          return {
            input:"",
          }
      },
      created(){
        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]
        console.log(this.slimList(arr, arr1))
        // [1, 10, 1, 1, 1, 1, 6, 1, 1, 1, 1, 1, 1, 1, 10, 1, 1]

        console.log(this.slimList([5, 8, 30, 38, 50], arr1))
        // [1, 1, 6, 8, 10]
      },
      methods: {
        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)])
        }
      }
    }
  
</script>

转载链接:https://segmentfault.com/q/1010000043114269

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值