猿问

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

如何从java脚本中数组键的对象中获取键?

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

如何通过java脚本中“S”的值获取密钥?


湖上湖
浏览 238回答 2
2回答

饮歌长啸

Object.keys()Object.keys() 将为变量中的对象创建一个键数组 objectfind()将找到与条件匹配的匹配键。在您的情况下,匹配该toSearch键的数组值内的文本,您可以使用includes()甚至indexOf(toSearch) !== -1var 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);

米琪卡哇伊

您可以创建一个函数并传递对象和 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'))
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答