javascript - 如何在对象中查找特定键的键/值对?

标签 javascript arrays object

我是 Javascript 的新手,刚刚学习基础知识。假设我有一个代表一副牌中卡片名称的数组,如下所示:

var deckNames = [
  "sA", "s2", "s3", "s4", "s5", "s6", "s7", "s8", "s9", "s10", "sJ", "sQ", "sK",
  "hA", "h2", "h3", "h4", "h5", "h6", "h7", "h8", "h9", "h10", "hJ", "hQ", "hK",
  "cA", "c2", "c3", "c4", "c5", "c6", "c7", "c8", "c9", "c10", "cJ", "cQ", "cK",
  "dA", "d2", "d3", "d4", "d5", "d6", "d7", "d8", "d9", "d10", "dJ", "dQ", "dK",
  ];

以及一个对象,其中包含牌组中每张卡牌的值,如下所示:

var deckValues = {
  sA: 11, s2: 2, s3: 3, s4: 4, s5: 5, s6: 6, s7: 7, s8: 8, s9: 9, s10: 10, sJ: 10, sQ: 10, sK: 10,
  hA: 11, h2: 2, h3: 3, h4: 4, h5: 5, h6: 6, h7: 7, h8: 8, h9: 9, h10: 10, hJ: 10, hQ: 10, hK: 10,
  cA: 11, c2: 2, c3: 3, c4: 4, c5: 5, c6: 6, c7: 7, c8: 8, c9: 9, c10: 10, cJ: 10, cQ: 10, cK: 10,
  dA: 11, d2: 2, d3: 3, d4: 4, d5: 5, d6: 6, d7: 7, d8: 8, d9: 9, d10: 10, dJ: 10, dQ: 10, dK: 10,
};

我编写了一个“deal”函数,它从“deckNames”数组中随机选择一张牌。我有两个问题:

  1. 我正在尝试编写一个可以遍历“deckValues”对象并返回它找到的值的函数。我如何在“deckValues”对象中查找所发牌的名称,然后返回关联的值?

  2. 我有一个仅用于名称的数组并拥有一个已经具有名称和与其关联的值的对象,这是多余的吗?

最佳答案

deckValues 属性可以通过两种方式按名称访问:

var storeValue = deckValues.sA;
var storeValue = deckValues['sA'];

因此,要使用 DeckNames 数组查看值,您可以执行以下操作:

var storeValue = deckValues[deckNames[0]];

您可以轻松地将上述语句放入循环中,并将 0 替换为随循环迭代的变量。

您实际上并不需要有一个数组和一个可以循环访问对象属性的对象。

for(var name in deckValues) {
    var storeValue = deckValues[name];
    console.log('Deck name is ' + name + ' and the value is ' + storeValue);
}

关于javascript - 如何在对象中查找特定键的键/值对?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39987502/

相关文章:

javascript - 我如何缓存特定文件 html/css?

c - c 中的菜单驱动程序,用于对数组执行各种操作

ios - 如何将计算属性添加到 Array<T>?

C 程序数组需要的输入比应有的多

java - "for"循环没有按照我想要的方式迭代

javascript - 如何使用 lodash 将对象转换为数组

javascript - iframe 并使用 jquery 仅加载表并删除行或列

javascript - 一个动画位置如何使用 CSS -webkit-animation

javascript - 如何检查我们是否已经使用 ObservableSlim 在 Object 上创建了代理?

javascript - Angular 2关注点击/事件后的第一个无效输入