Den*_*gin 4 javascript dictionary data-structures
如何在 JavaScript 中映射“map”的键/值对:
var map = {"a": 1, "b": 2, "c": 3};
alert(JSON.stringify(map));
Run Code Online (Sandbox Code Playgroud)
我需要在每次迭代中获取一个包含键/值对的映射器:
// ["a_1", "b_2", "c_3"]
map.map((key, value) => key + "_" + value);
Run Code Online (Sandbox Code Playgroud)
这不是一个Map对象。它只是一个普通的对象。因此,在键值对上使用Object.entries然后使用map:
const map = {"a": 1, "b": 2, "c": 3};
const mapped = Object.entries(map).map(([k,v]) => `${k}_${v}`);
console.log(mapped);Run Code Online (Sandbox Code Playgroud)
Object.entries 返回:
[["a",1],["b",2],["c",3]]
Run Code Online (Sandbox Code Playgroud)
然后遍历每个内部数组并使用模板文字创建字符串
如果您有Map对象,请使用Array.from(map)获取地图的条目并使用的第二个参数Array.from遍历每个条目并创建所需的字符串
Array.from(map, ([k,v]) => `${k}_${v}`)
Run Code Online (Sandbox Code Playgroud)
这不是一张地图,而是一个对象。(不过,您可能会考虑使用 a Map。)
要将其属性作为键/值对获取,您可以使用Object.entries,然后您可以将其应用于map:
map = Object.entries(map).map(([key, value]) => key + "_" + value);
Run Code Online (Sandbox Code Playgroud)
Object.entries 相对较新,但很容易在旧环境中填充。
现场示例:
map = Object.entries(map).map(([key, value]) => key + "_" + value);
Run Code Online (Sandbox Code Playgroud)
或者,使用 a Map,您可以使用其内置entries方法,该方法返回一个可迭代对象,将其传递给Array.from并使用Array.from的映射回调:
var map = {"a": 1, "b": 2, "c": 3};
map = Object.entries(map).map(([key, value]) => key + "_" + value);
console.log(map);Run Code Online (Sandbox Code Playgroud)
(或者将可迭代对象扩展为数组——[...map.entries()] 并map在其上使用,但上面避免了临时丢弃的数组。)
在这两种情况下,我都在箭头函数的参数列表中使用解构,它以[key, value]格式接收数组。
| 归档时间: |
|
| 查看次数: |
16284 次 |
| 最近记录: |