js如何修改對象的key值,value值不變?


對應的值不變,只是改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值已經改變,值還是原來的值。成功!

 

原地址:https://segmentfault.com/q/1010000015794387


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM