【发布时间】:2020-07-18 06:26:03
【问题描述】:
所以我一直在寻找一些平面地图的解决方法,因为它在 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']
【问题讨论】:
-
你正在使用 concat 而不是 push 这就是为什么它是普通数组(只是连接)
-
你可以找到
flatMap的 polyfills。core-js中有一个(目前对维护者来说有点束缚),es-shimsproject 中有一个,... -
@PranavCBalan - 以上想要
concat. -
“但它不应该返回” 那是什么?您已经展示了两个不同的值,但它们周围没有容器。
-
@T.J.Crowder :是的,但他很困惑为什么输出是普通数组而不是嵌套的
标签: javascript arrays ecmascript-6 flatmap