首页 > 解决方案 > Javascript - 平面图的解决方法

问题描述

所以我一直在寻找一些平面地图的解决方法,因为它在 IE 上不起作用,我找到了这个:但我真的不明白为什么它会起作用

var gadjets = [
  {computers:['asus', 'hp'],
  sellphones:['Galaxy', 'Nokia']
  },

  {computers:['dell', 'insys'],
  sellphones:['iphone', 'samsung']
  }
];

const getValues = gadjets.reduce((acc, gadjet) => acc.concat(gadjet[computers]), []) // instead of gadjets.flatMap(gadjet=> gadjet[computers])

此代码返回:

['asus','hp','dell','insys']

但它不应该返回:

['asus','hp'],['dell', 'insys']

标签: javascriptarraysecmascript-6flatmap

解决方案


如果您希望输出是数组数组。尝试这个:

var gadjets = [
  { computers: ["asus", "hp"], sellphones: ["Galaxy", "Nokia"] },
  { computers: ["dell", "insys"], sellphones: ["iphone", "samsung"] }
];
const groupBy = key => {
  let res = gadjets.reduce((objectsByKeyValue, obj) => {
               let arr = [];
               arr.push(obj[key]);
               return objectsByKeyValue.concat(arr);
        }, []);
   return res;
};
console.log(groupBy("computers"));


推荐阅读