首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如果key是数组,如何查找key的值?

在JavaScript中,如果你有一个对象,而它的键(key)是一个数组,你可以通过多种方式来查找对应的值。以下是一些常见的方法:

方法一:使用Array.prototype.map()

如果你想要获取数组中每个键对应的值,并返回一个新数组,可以使用map()方法。

代码语言:txt
复制
const obj = {
  'a': 1,
  'b': 2,
  'c': 3
};

const keys = ['a', 'c'];

const values = keys.map(key => obj[key]);
console.log(values); // 输出: [1, 3]

方法二:使用Array.prototype.reduce()

如果你想要将所有找到的值合并成一个单一的结果(例如求和),可以使用reduce()方法。

代码语言:txt
复制
const obj = {
  'a': 1,
  'b': 2,
  'c': 3
};

const keys = ['a', 'c'];

const sum = keys.reduce((accumulator, key) => accumulator + (obj[key] || 0), 0);
console.log(sum); // 输出: 4

方法三:使用for...of循环

如果你想要遍历数组并逐个获取键对应的值,可以使用for...of循环。

代码语言:txt
复制
const obj = {
  'a': 1,
  'b': 2,
  'c': 3
};

const keys = ['a', 'c'];

for (const key of keys) {
  console.log(obj[key]); // 分别输出: 1, 3
}

方法四:使用Object.keys()Array.prototype.includes()

如果你想要检查某个键是否存在于对象中,并获取其值,可以使用Object.keys()结合Array.prototype.includes()

代码语言:txt
复制
const obj = {
  'a': 1,
  'b': 2,
  'c': 3
};

const keys = ['a', 'c'];
const values = {};

for (const key in obj) {
  if (keys.includes(key)) {
    values[key] = obj[key];
  }
}

console.log(values); // 输出: { a: 1, c: 3 }

注意事项

  • 如果数组中的键在对象中不存在,上述方法将返回undefined或不会包含该键的值。
  • 在使用这些方法时,确保键的类型与对象中的键类型匹配,因为JavaScript中的对象键总是被转换为字符串。

以上就是查找对象中数组键对应的值的一些基本方法。根据你的具体需求,你可以选择最适合的方法来解决问题。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

php 数组根据值找key,从数组查找key对应的值 – key

大家好,又见面了,我是你们的朋友全栈君。...datetimeDEFAULTNULL,PRIMARYKEY… php$arr = [5=>’name’,8=>’age’,10=>’city’]; $num = ‘5,10’; $str = ”; //如何查找...=value; } } 回复内容: php$arr = [5=>’name’,8=>’age’,10=>’city’]; $num = ‘5,10’; $str = ”; //如何查找5,10对应的值,...> 用array_key_exists判断,楼上已给出代码! 除了楼上给出的分解num后通过array_key_exists在arr数组寻找相应的值后在implode到一起之外。...PHP可以模拟实现Hash表的增删改查。通过对key的映射到数组中的一个位置来访问。映射函数叫做Hash函数,存放记录的数组称为Hash表。 Hash函数把任意长度的和类型的key转换成固定长度输出。

11.6K20
  • 为什么 key 是必须的?

    之前有说到,在 React 中渲染列表的时候,要给每一个数据加一个 key 值,赋予一个确定的标示,而且也详细描述了如何给一个标示,方法知道了,那么为什么要这么做呢?...'0' key 的元素是新元素,带着 '1' 以及 '2' key 的元素仅仅移动了。...,或者利用一部分内容作为哈希值来生成一个 key。...这个 key 不需要全局唯一,但在列表中需要保持唯一。 最后,你也可以使用元素在数组中的下标作为 key。这个策略在元素不进行重新排序时比较合适,如果有顺序修改,diff 就会变得慢。...由于组件实例是基于它们的 key 来决定是否更新以及复用,如果 key 是一个下标,那么修改顺序时会修改当前的 key,导致非受控组件的 state(比如输入框)可能相互篡改导致无法预期的变动。

    78420

    redis 生产环境如何有效查找哪些无过期时间的 key

    在项目中,Redis 不应该被当作传统数据库来使用;储存大量没有过期时间的数据。如果储存大量无过期时间,而且无效的key的话;再加上 Redis 本身的过期策略没有被正确设置,就会大量占用内存。...即 ACL_USER_ + uuid,比如 uuid 的值为 26a26b84-578d-40bf-ab15-aeb188a56393,则key 为ACL_USER_26a26b84-578d-40bf-ab15...在测试环境中,可以使用 keys 命令,模糊查询到需要的 key,但这个操作只适合在测试环境中使用,不适合在生产环境中使用,原因是 Redis 是单线程运行的,当 Redis 中的数据量很大时,由于此操作会遍历所有数据...解决的办法是使用scan命令: scan cursor [MATCH pattern] [COUNT count] cursor:表示游标,从 0 开始,此命令执行完后会返回一个新的 cursor值。...如果cursor!="0",则表示还有 key 未返回,需要再调用 scan,并使用此新的 cursor 值,来获取下一批 key;如果cursor=="0",则表示遍历结束。

    2.1K20

    关于PHP数组Key的强制类型转换

    关于PHP数组Key的强制类型转换 PHP是弱类型语言,就像JavaScript一样,在定义变量时,不需要强制指定变量的类型。...同时,PHP又有着强大的数组功能,数组的Key即可以是普通的数字类型下标,也可以是字符串类型的Hash键值,那么,当一个数组的Key同时拥有字符串和数字时,会产生什么情况呢?...我们定义的"1"、1下标的值都变成了1.1的"aaa"了? 没错,PHP中的数组Key值只接受数字和字符串类型,当Key是字符串时,会强制转换为数字类型,遵守类型强制转换的规则。...它当然也不是一个标准的十进制数值。这里是违背了字符串转型数字的强制类型转换原则的,在变量的强制转换中,这两种字符串都会被转换为0,但在数组中则不会,这里会是一个坑,也是需要注意的地方。...在PHP官方文档中给出的Key值转换说明如下: 包含有合法整型值的字符串会被转换为整型。例如键名 "8" 实际会被储存为 8。但是 "08" 则不会强制转换,因为其不是一个合法的十进制数值。

    2.5K20

    Discourse 如何设置 API 的 key

    在标签页中可以看到当前正在使用的 Key。 你可以单击创建新的 API Key 进行配置 在描述部分,你可以输入任何你需要的描述。...在用户级别部分,你可以为这个 API Key 设置为全局访问还是只能是针对一个特定的用户使用这个 key。...我们是比较建议针对特定的用户使用这个 Key ,以避免因为用户分享 Key 导致的很多安全性问题。 在随后的页面中就是对这个 key 进行授权了。...一般来说,你可以使用这个 Key 来创建主题,对用户进行管理等。 针对数据迁移的情况来看,我们使用了主要是对主题来进行操作和控制。 当完成上面的配置后,将会提示创建的 Key 的字符串。...请注意你需要马上拷贝创建的字符串,因为这个字符串只出现一次。 如果这个 key 字符串丢了的话,你需要重新进行创建。

    95420

    第9课 如何变更EOS账号的active key和owner key?

    1,摘要 【本文目标】 通过本文学习,可以通过EOS本地环境完成EOS注册账号的active key和owner key的变更。...在EOS账号是其他人代为注册时,私钥往往也被其他人知晓,存在泄漏风险,建议尽快完成变更。 【前置条件】 1)参考第8课 如何使用开发环境命令行注册EOS靓号?文章,已完成了靓号的注册和环境搭建。...初步估计是跟主网节点连接处理的时间不够,增加-x 120,把等待时间改为2分钟,就成功了。...因此,代表着owner权限的EOS公私钥是最重要的,必须冷储藏保管好。...4.3 权重和阈值 在多主体共同控制某一权限的情况下(如多对EOS公私钥共同控制owner权限),如何判定,或者说在何种条件下就拥有了该账户的某一权限?EOS是通过权重和阈值来实现的。

    1.1K30

    深入浅出 Vue 中的 key 值

    很感谢有人帮我指出,可能是 Vue 的 key 值,导致数据渲染不正确的。由此,我做了进一步的尝试。...之所以会造成上面渲染错误的情况,是因为我们的 key 值不是独特的,比如上面的 key 值,在调整数组顺序后就每一项原来的 key 值都变了,所以导致了渲染错误。...warning,那也就是说官方是希望我们写 key 值的,那么 key 到底在 vue 中扮演了什么样的角色?...不使用 key 可以提高性能么 答案是,是的!可以! 先看官方解释: 如果不使用 key,Vue 会使用一种最大限度减少动态元素并且尽可能的尝试修复/再利用相同类型元素的算法。...比如现在有一个数组 [1,2,3,4]变成了[2,1,3,4],那么没有 key 的值会采取一种“就地更新策略”,见下图。它不会移动元素节点的位置,而是直接修改元素本身,这样就节省了一部分性能 ?

    1.1K10

    Redis-脚本-获取某个大key的值

    1、背景 在redis中,对于一个很大的key,例如hash类型,直接查看其值会非常慢,于是想到写个脚本通过增量迭代来获取 2、具体的脚本如下: 功能:扫描redis某个key里面的所有元素 使用方法:...key = sys.argv[1] #扫描匹配值 match = sys.argv[2] #每次匹配数量 count = sys.argv[3] #总数量 total = 0 #获取当前路径 path...= os.getcwd() keytype = r.type(key) print "key的类型为%s" % (keytype) #扫描到的key输出的文件 txt = path+"/%s.txt"...for item in list_iter(key): #将匹配到对应key中的member/score输出到文件中 f.write("%s %s" % (item,"\n"))...的类型为string,value为:" + r.get(key)) print "key:%s的match:%s的数量为:%d" % (key,match,total)

    1.6K10
    领券