Remove Characters from All Keys in an Object (Lodash OK)

前端 未结 5 1417
没有蜡笔的小新
没有蜡笔的小新 2021-01-27 19:46

I have a bothersome length of characters before all keys in this object. Since they are all the same, I would like to do a .map() or forEach() or some

5条回答
  •  灰色年华
    2021-01-27 20:07

    Use object.entries to get the keys and values. Loop over changing the key.

    Changing the object directly

    var obj = {
      'remove.this.string.a': "apple",
      'remove.this.string.b': "banana",
      'remove.this.string.c': "carrot",
      'remove.this.string.d': "diakon"
    }
    
    // Object.entries(obj).forEach(function(arr) {
    //   var key = arr[0]
    //   var value = arr[1]
    //   delete obj[key]
    //   obj[key.split(".").pop()] = value
    // })
    Object.entries(obj).forEach(([key, value]) => {
      delete obj[key]
      obj[key.split(".").pop()] = value
    })
    
    console.log(obj)

    or reduce to create a new object

    var obj = {
      'remove.this.string.a': "apple",
      'remove.this.string.b': "banana",
      'remove.this.string.c': "carrot",
      'remove.this.string.d': "diakon"
    }
    
    // const updated = Object.entries(obj).forEach(function(obj, arr) {
    //   var key = arr[0]
    //   var value = arr[1]
    //   obj[key.split(".").pop()] = value
    //   return obj
    // }, {})
    const updated = Object.entries(obj).reduce((obj, [key, value]) => {
      obj[key.split(".").pop()] = value
      return obj
    }, {})
    
    console.log(updated)

提交回复
热议问题