gpt4 book ai didi

javascript - 通过 Maps Javascript 解析

转载 作者:行者123 更新时间:2023-11-30 20:59:16 26 4
gpt4 key购买 nike

我通过对从服务器检索的 json 数据执行某些操作返回了一个 map 。当我打印键和值时,映射结构如下所示

action = [object Map]  
comedy = [object Map]
thriller = [object Map]

在对象 Map 中(即当我只打印值时)它们具有我期望的计数。

Map {  
'spanish' => 3
'english' => 4
}
Map {
'spanish' => 1
'english' => 2
}

我想将嵌套映射转换为基于类似这样的数组。是否已有我可以利用的现有库?

var comedy[] = ['spanish_1', 'english_2']
var action[] =['spanish_3', 'english_4']

请建议这是否是处理此数据的理想方式,因为我发现很难从嵌套 map 中获取数据。

最佳答案

使用 Map.entries 获取 map 中的项目并使用 Array.from 对其进行迭代创建一个具有所需值的新 Array

const myNewArray = Array.from(myMap.entries(), ([
key,
value,
]) => `${key}_${value}`);

编辑

得到如下结果:

{
actions: [
'spanish_3',
...
],

comedy: [
'spanish_3',
...
],
}

我在第一个 map 级别循环以提供一个新的 json 对象,我用第二个级别的 map 数据填充它。

    Array.from(myMap.entries()).reduce((tmp, [
xKey,
xValue,
]) => ({
...tmp,

[xKey]: Array.from(xValue.entries(), ([
yKey,
yValue,
]) => `${yKey}_${yValue}`),
}), {});

得到如下输出

[
[
'spanish_3',
...
],

[
'spanish_3',
...
],

...
]

我在这里创建了一个二维数组,我将其与解构一起使用(如果您已经知道即将到来的数据,解构将起作用)。

    const [
action,
comedy,
thriller,
] = Array.from(myMap.entries(), ([
xKey,
xValue,
]) => Array.from(xValue.entries(), ([
yKey,
yValue,
]) => `${yKey}_${yValue}`));

有很多用例,取决于您拥有什么信息以及您想用它做什么。希望所有的例子都能给你足够的帮助来找出你的具体用例。 :)

关于javascript - 通过 Maps Javascript 解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47290160/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com