[JavaScript] JS Array.map()、ES6一Map、Set 数据结构

1. 定义和用法
  • map() 方法 按照原始数组元素顺序依次处理元素
  • map() 方法 返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。
  • map() 方法 不会对空数组进行检测,不会改变原始数组。
2. 语法
array.map(function(currentValue,index,arr), thisValue)
3. 例子

1.假如后端给回的数据不是你想要的,可以用Map()方法 改变后端返回的resultArr数组里的key值

const users=res.resultArr.map(item => ({
    url: item.html_url,      
    img: item.avatar_url,      
    name: item.login,
    })
);

2.把 imagePreviewList变成urlList

this.imagePreviewList=[
	url:'image/01.jpg',
	url:'image/02.png'
]

let urlList=this.imagePreviewList.map(element => {
    var obj=new Object() 
     obj.url=element 
     obj.lb=1
     return obj
 });  
 console.log(urlList)
 
 // urlList=[
 //  {url:'image/01.jpg',lb:1},
 //  {url:'image/02.png',lb:1}
 // ]

ES6新增的Map、Set数据结构具体看这篇 [ES6]Day05—Set 和 Map 数据结构

面试题目
在这里插入图片描述

解法1:用 Map

var A=[
       {id:"0",name:"张三",job:"卖狗肉",age:"35"},
       {id:"1",name:"李四",job:"挂羊头",age:"26"},
       {id:"2",name:"王五",job:"苦逼前端",age:"25"},
       {id:"2",name:"赵六",job:"辣鸡",age:"27"}
   ]
        
  function changeToObj(arr){
      var obj={}
      var map =new Map();
      arr.forEach((item,i) => {  
          for (const key in item) {
             if(!map.has(key)){ //是否存在key  
              map.set(key,1);//设置Map键值对
              obj[key]=[];
              obj[key].push(item[key]);
             } else{
              obj[key].push(item[key]);
             } 
        }   
      });  
      console.log(obj) 
  }
  changeToObj(A);//调用方法

结果:
在这里插入图片描述
解法1:用 Set

var A=[
       {id:"0",name:"张三",job:"卖狗肉",age:"35"},
       {id:"1",name:"李四",job:"挂羊头",age:"26"},
       {id:"2",name:"王五",job:"苦逼前端",age:"25"},
       {id:"2",name:"赵六",job:"辣鸡",age:"27"}
   ]
        
  function changeToObj(arr){
      var obj={}
      var set =new Set();
      arr.forEach((item,i) => {  
          for (const key in item) {
             if(!set.has(key)){ //是否存在 key
              set.add(key);// Set里添加元素
              obj[key]=[];
              obj[key].push(item[key]);
             } else{
              obj[key].push(item[key]);
             } 
        }   
      });  
      console.log(obj) 
  }
  changeToObj(A);//调用方法

结果也一样。

参考链接:

JS语法—map()方法

廖雪峰—Map和Set

ES6基础之——new Set

JS将数组转化为一个对象obj,键值对形式

JS将数组按父子关系转换为对象树

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值