最近在写前端的时候碰到一种比较"偏门"的数据格式,大致如下:

  data: {<br />
      civil: {<br />
        0: '3000-4500',<br />
      },<br />
      criminal: {<br />
        0: '1500',<br />
        1: '2000',<br />
        2: '3000',<br />
      },<br />
      administrative: {<br />
        0: '2500-3750',<br />
      },<br />
      charge: {<br />
        0: {<br />
          '0-2': '800',<br />
        },<br />
        1: {<br />
          '2-10': '4',<br />
        },<br />
        2: {<br />
          '10-50': '3',<br />
        },<br />
        3: {<br />
          '50-100': '2',<br />
        },<br />
        4: {<br />
          '100-500': '1',<br />
        },<br />
        5: {<br />
          '500-1000': '0.5',<br />
        },<br />
        6: {<br />
          '1000-5000': '0.2',<br />
        },<br />
        7: {<br />
          '5000-Infinity': '这是最终的处理方式',<br />
        },<br />
      },<br />
    },

算是一个多维的数组对象?需求大概是这样子的,根据条件分别取到对应层级下的某个key范围内的值,也就是比如我当前条件是要求取charge下的2-10之间的对应值,直接用下标取肯定是不合适的,这个时候呢,就只能用如下的方法去取,(仅记录,可能有更优的方法?欢迎交流)

设定已经把上面格式赋值给了data变量,那么就会有如下代码:

<br />
let charge = data.charge;<br />
Object.values(charge).map((item)=>{<br />
      //>Object.keys取下标,也就是取(2-10,10-50)这个下标<br />
      console.log(Object.keys(item));<br />
      //>Object.values取值,通过条件对比是否在下标范围内,在下标范围内则进行赋值或者对应操作.<br />
      console.log(Object.values(item))<br />
})<br />

以上,记录下来防止以后再碰上忘记.欢迎各位大佬指教.