同事碰到介面返回為數值的鍵值,想處理成自己想要的鍵值的對象,於是寫了個方法來處理類似的數據 '{"1":"憑訂單詳情頁的入園憑證(入園輔助碼或二維碼)入園","2":"憑下單時預留的身份證入園","3":""}' 處理成自己想要的鍵值的對象 const content = '{"1":"憑訂單詳情頁 ...
同事碰到介面返回為數值的鍵值,想處理成自己想要的鍵值的對象,於是寫了個方法來處理類似的數據
'{"1":"憑訂單詳情頁的入園憑證(入園輔助碼或二維碼)入園","2":"憑下單時預留的身份證入園","3":""}' 處理成自己想要的鍵值的對象const content = '{"1":"憑訂單詳情頁的入園憑證(入園輔助碼或二維碼)入園","2":"憑下單時預留的身份證入園","3":""}' const newKey = ['key1', 'key2', 'key3', 'key4'] function keyConversion(content = '{}', newKey = []) { const obj = JSON.parse(content) if (Object.keys(obj).length == 0) return {} let [arr, index] = [ [], -1 ] for (let key in obj) { //遍歷拿取對象內的值 arr.push(obj[key]) //鍵值為數字時可以通過 obj[key] 的方式拿出來對應數字鍵值的值 } return arr.reduce((pre, cur) => { index++ return Object.assign(pre, { //每次在對象內合併增加一個新的鍵值對 [newKey[index]]: cur }) }, {}) } const newObj = keyConversion(content, newKey) console.log(newObj)