- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在寻找一种获取以下列表的方法:
directory = [
{
name: "Albert",
age: 40,
gender: "M"
},
{
name: "Suzanne",
age: 27,
gender: "F"
},
{
name: "Robert",
age: 19,
gender: "M"
},
{
name: "Connie",
age: 87,
gender: "F"
}
]
并在键 name
上创建一个字典:
dictionary = {
"Albert": {
name: "Albert",
age: 40,
gender: "M"
},
"Suzanne": {
name: "Suzanne",
age: 27,
gender: "F"
},
"Robert": {
name: "Robert",
age: 19,
gender: "M"
},
"Connie": {
name: "Connie",
age: 87,
gender: "F"
}
}
这类似于 C# ToDictionary
方法。我知道我可以做一些事情,比如在 for
循环或 .each
调用中遍历 directory
,并修改 dictionary< 的值
每次迭代。但是,我更愿意进行类似函数式编程的分配,例如
dictionary = directory.toDictionary(p => p.name);
在 ES6 或 lodash 中是否存在这样的方法?
最佳答案
Javascript 的 Map
非常类似于字典。它的实例很方便 has
、get
、set
、keys
、values
方法。它也可以通过 forEach
方法直接迭代。
您可以使用“键值对”数组构造一个Map
。 (在引号中,因为实际上我们以某种类似元组的方式使用数组)。
要创建一个 Map
用作字典,您需要:
const directory=[{name:"Albert",age:40,gender:"M"},{name:"Suzanne",age:27,gender:"F"},{name:"Robert",age:19,gender:"M"},{name:"Connie",age:87,gender:"F"}];
const myDict = new Map(
directory.map(p => [p.name, p])
);
console.log("Has Albert:", myDict.has("Albert"))
myDict.forEach(p => { console.log(`${p.name} has age ${p.age}`) });
关于等效于 C# ToDictionary 的 JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57083752/
我想调用一个返回匿名类型的方法。我需要知道这个匿名类型的类型是什么,因为我在一个方法中返回它。这叫“动态”吗?当我调试时,监 window 口显示类型是 <>f__AnonymousType0。 这是
关于 ToDictionary() 的 MSDN 文档并没有多说它实际上是如何工作的。我想知道它是创建字典及其元素的副本,还是只是重复使用相同的引用和枚举器。 例如,如果我有一个 Concurrent
给定以下代码,我无法返回字典。 [JsonProperty] public virtual IDictionary JsonProducts { get { retur
我有一个返回列表的方法,我们称它为GetSomeStrings() . 我在字符串类上有一个扩展方法,返回字符串中的字符数,例如。 myString.Number('A') . 我想在一行中获取字典。
我有一个简单的 LINQ 语句,它拆分一个字符串,然后将值扔到字典中。问题是字典很少已经具有相同值的现有键,因此抛出异常并且“dict”的值保持为空。 dict = lines.Select(l =>
我正在使用 Enumerable.ToDictionary 从 linq 调用中创建一个字典: return (from term in dataContext.Terms where
这个问题在这里已经有了答案: How do you get the duplicate key that ToDictionary() has failed on? (4 个答案) 关闭 7 年前。
我有如下两个模型: public class Complaint { [Key] public int COMP_ID { get; set; } public Nullabl
我不是 C# 和 LINQ 方面的专家。 我有一个Dictionary,我理解是一个哈希表,也就是key没有排序。 dataBase = new Dictionary() Record 是一个用户定义
我有一个像 string strn = "abcdefghjiklmnopqrstuvwxyz" 这样的字符串,并且想要一个像这样的字典: Dictionary(){ {'a',0},
我有一个简单的 Linq 查询: var dict = (from i in Customers select i).ToDictionary(i => i.Id1, i => i.Id2); 尽管查
我有一个字典,我想使用以下示例隐含的规则将其转换为另一个字典: 输入: Dictionary inputs = new Dictionary(3) { { "A", "First" },
最终编辑:我能够在 ini 文件中找到重复的字段。感谢大家的帮助! 我正在使用正则表达式解析 ini 文件,并使用 LINQ 将其存储在字典中: Sample Data: [WindowSetting
我有两个大小相同的字符串列表。我想创建一个字典,键来自listA,值来自listB。 什么是最快的方法? 我使用了代码: List ListA; List ListB;
我有一个要放入字典中的列表,为简单起见,插入的值将全部相同。 我可以使用 foreach 循环。 List list = new List(); list.Add("Earth");
我正在使用 IEnumerable 的 ToDictionary() 扩展方法创建一个 Dictionary 对象: var dictionary = new Dictionary (myCo
如何使用 Linq 将 SQL (2008) 中的两列正确转换为 Dictionary(用于缓存)? 我目前循环遍历 IQueryable b/c 我无法使 ToDictionary 方法工作。有任何
我正在寻找一种获取以下列表的方法: directory = [ { name: "Albert", age: 40, gender: "M"
ExSwift 有一个数组扩展: /** Converts the array to a dictionary with keys and values supplied via th
我有以下代码 public class TestAdaptor { private interface ITargetClass { Guid Id { get; }
我是一名优秀的程序员,十分优秀!