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

posted @ 2021-03-09 16:12  Amerys  阅读(536)  评论(0编辑  收藏  举报