为了账号安全,请及时绑定邮箱和手机立即绑定

如何在Javascript中的数组键的对象中按值获取键?

如何在Javascript中的数组键的对象中按值获取键?

湖上湖 2021-11-12 10:44:12
如何从java脚本中数组键的对象中获取键?var object = { "a" : [], "b" : ["S","W"] "c" : ["N","E"]}如何通过java脚本中“S”的值获取密钥?
查看完整描述

2 回答

?
饮歌长啸

TA贡献1951条经验 获得超3个赞

Object.keys()

  1. Object.keys() 将为变量中的对象创建一个键数组 object

  2. find()将找到与条件匹配的匹配键。在您的情况下,匹配该toSearch键的数组值内的文本,您可以使用includes()甚至indexOf(toSearch) !== -1

var object = { "a" : [], "b" : ["S","W"], "c" : ["N","E"]};

var toSearch = 'S';

var key = Object.keys(object).find((key) => object[key].includes(toSearch));

console.log(key);

您还可以使用另一种方式,Object.entries()例如:

var object = { "a" : [], "b" : ["S","W"], "c" : ["N","E"]};

var toSearch = 'S';

var key = (Object.entries(object).find(([key, value]) => value.includes(toSearch)) || [])[0];

console.log(key);


查看完整回答
反对 回复 2021-11-12
?
米琪卡哇伊

TA贡献1998条经验 获得超6个赞

您可以创建一个函数并传递对象和 val。在函数内部使用迭代对象for..in并检查值是否包含搜索的文本。如果是这样,则将键推入数组并返回它。这个返回的数组将包含所有在其值数组中包含搜索文本的键名


var object = {

  "a": [],

  "b": ["S", "W"],

  "c": ["N", "E", "S"]

}


function getKey(obj, val) {

  let keyArr = [];

  for (let keys in obj) {

    if (obj[keys].includes(val)) {

      keyArr.push(keys)

    }

  }

  return keyArr;

}


console.log(getKey(object, 'S'))


查看完整回答
反对 回复 2021-11-12
  • 2 回答
  • 0 关注
  • 191 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信