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

前端 未结 5 1372
没有蜡笔的小新
没有蜡笔的小新 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:12

    You could use the new Object.fromEntries along with Object.entries:

    let remove = {
        this: {
            string: {}
        }
    }
    
    remove.this.string.a = "apple"
    remove.this.string.b = "banana"
    remove.this.string.c = "carrot"
    remove.this.string.d = "diakon"
    
    console.log(remove.this.string)
    
    let fixed = Object.fromEntries(
        Object.entries(remove.this.string)
            .map(([key, val]) => [key, val])
    )
    
    console.log(fixed)

    Result: { a: 'apple', b: 'banana', c: 'carrot', d: 'diakon' }

    Update:

    For keys that are all one string:

    let remove = {
        'remove.this.string.a': 'apple',
        'remove.this.string.b': 'banana',
        'remove.this.string.c': 'carrot',
        'remove.this.string.d': 'diakon'
    }
    
    let fixed = Object.fromEntries(
        Object.entries(remove)
            .map(([key, val]) => [key.replace('remove.this.string.', ''), val])
    )
    
    console.log(fixed)

    Result: { a: 'apple', b: 'banana', c: 'carrot', d: 'diakon' }

提交回复
热议问题