批量修改對象中的key值,如批量對key作數學運算

須要本身作一份有關數字的json文件,發現json數據局部有規律,能夠經過批量key運算,減小手動輸入的操做。看了不少辦法,最終採用了,對象轉字符串的操做方法,替換掉對應的數據。json

需求:批量對'16.23'這一列作數學運算,譬如+0.6code

let s = {
  '16.23': 55,
  '16.18': 60,
  '16.13': 65,
  '16.09': 66,
  '16.05': 67,
  '16.01': 68,
  '15.57': 69,
  '15.53': 70,
  '15.50': 71,
  '15.47': 72,
  '15.44': 73,
  '15.41': 74,
  '15.38': 75,
  '15.35': 76,
  '15.32': 77,
  '15.29': 78,
  '15.26': 79,
  '15.23': 80,
  '15.20': 81,
  '15.17': 82,
  '15.14': 83,
  '15.11': 84,
  '15.08': 85,
  '15.05': 86,
  '15.02': 87,
  '14.59': 88,
  '14.56': 89,
  '14.53': 90,
  '14.50': 91,
  '14.47': 92,
  '14.44': 93,
  '14.41': 94,
  '14.38': 95,
  '14.33': 96,
  '14.28': 97,
  '14.23': 98,
  '14.18': 99,
  '14.13': 100
}
let json = JSON.stringify(s)
let len = json.length
json = json.substring(1, len - 1)
len = json.length
for (let m = 0; m < 11; m++) {
  for (let i = 0; i < (len / 11); i++) {
    let begin = 11 * i
    let num = parseFloat(json.substring(begin + 1, begin + 6)) - 0.13
    let f = num - Math.floor(num)
    if (f > 0.6) {
      // f = f - 0.6
      // num = Math.floor(num) + 1 + f
      f = f - 0.4
      num = Math.floor(num) + f
    }
    let str = '"' + num.toFixed(2) + '"'
    json = json.substring(0, begin) + str + json.substring(begin + 7, len)
  }
  console.log(json)
}
相關文章
相關標籤/搜索