js中数组map和集合map

发布时间 2023-12-13 12:15:14作者: 帅到被人砍的阿豪

js中数组的map:
使用情况: 想要对一个数组进行操作,然后又不想改变原来的数组数据,还想基于原来数组的数据进行改造,那么可以使用map
写法一:

let arr=[1,2,3,4]
let newArr=arr.map(item=>{
  return ++item
})
console.log(newArr,arr) //输出 [2,3,4,5]  [1,2,3,4]
let arr=[1,2,3,4]
let newArr=arr.map(item=>++item)
console.log(newArr,arr) //输出 [2,3,4,5]  [1,2,3,4]

换行之后需要加return ,因为map需要一个返回值,简写形式不用

js中的map集合
用处,使用后台返回的数据,假设后台返回一个数组,数组中每一个元素都是对象. 现在我们需要使用这个数组中的一个对象里面的值拿出来用,
稍微正常点的人应该都会想到使用findIndex,找到那个元素所在位置的索引然后再去拿.(还有就是使用for循环判断,这个我想应该很少有人这么做吧,因为这样实在是太麻烦太蠢了),
然后在知道了Map集合之后,我的第一反应就是,终于可以不用一直使用findIndex了
我们可以在后台返回来的时候就new Map()集合,然后使用forEach配合switch方法,将每一个元素放入到集合中.这样我们在使用的时候就可以直接根据自己key值去取对应的元素了,而不是用一次
findIndex一次,虽然可以封装一个方法,但是还是觉得使用这个map集合会更加好一点
示例:

//后台返回一个数组
      let arr = ["嗨嗨", "我tm来喽", "都多余了", "爱谁谁"];
      let map = new Map();
      arr.forEach((item) => {
        switch (item) {
          case "嗨嗨":
            map.set("hh", item);
            break;
          case "我tm来喽":
            map.set("wtmll", item);
            break;
          case "都多余了":
            map.set("ddyl", item);
            break;
          case "爱谁谁":
            map.set("ass", item);
            break;
        }
      });
      console.log(map.get('ddyl')); //输出 都多余了

这样在需要拿到对应数据的时候使用自己定义的东西key值就能拿到对应的数据,是不是很方便呢