對應的值不變,只是改key的名稱
原數據:
1 var array = [ 2 { 3 id:1, 4 name:"小明" 5 }, 6 { 7 id:2, 8 name:"小紅" 9 } 10 ];
我要改為的數據:
1 var array = [ 2 { 3 value:1, 4 label:"小明" 5 }, 6 { 7 value:2, 8 label:"小紅" 9 } 10 ];
上代碼:
1 // 原生js 2 var array = [ 3 { 4 id:1, 5 name:"小明" 6 }, 7 { 8 id:2, 9 name:"小紅" 10 } 11 ]; 12 //舊key到新key的映射 13 var keyMap = { 14 "id" : "value", 15 "name" : "label" 16 }; 17 18 for(var i = 0;i < array.length;i++){ 19 var obj = array[i]; 20 for(var key in obj){ 21 var newKey = keyMap[key]; 22 if(newKey){ 23 obj[newKey] = obj[key]; 24 delete obj[key]; 25 } 26 } 27 } 28 console.log(array); // 原數組 29 30 31 // ES6 寫法 32 var result = array.map(o =>{ 33 return{ 34 value:o.id, 35 label:o.name 36 } 37 }); 38 console.log(result); // 返回新數組,對象中只含value和label兩個key
結果:
可以看到key值已經改變,值還是原來的值。成功!