首页 > 解决方案 > JS:查找嵌套数组的索引并从数组中取出键值

问题描述

我有一个来自 osm 搜索的对象。而且,标签如下所示。

 a: {   
    tg: [
      ["leisure", "stadium"],
      ["name", "AA Stadium"],
      ["key", "game"],
    ]
   }

 b: {   
    tg: [
      ["key", "game"],
    ]
   }

c: {   
    tg: [
      ["name", "GTA"],
      ["key", "game"],
    ]
   }

有些没有名字。因此,首先,我想检查是否name退出,然后如果它存在,则返回其数组的索引以获取名称。我可以使用索引获取名称值,但我一直在获取包含名称的数组的索引号。

在这种情况下,如何获取包含name值的数组的索引?

标签: javascriptnode.js

解决方案


你可以使用Object.fromEntries()

const a = { tg: [ [ 'leisure', 'stadium'] , [ 'name', 'AA Stadium'] , [ 'key', 'game'] ] } 
    , b = { tg: [ [ 'key', 'game'] ] } 
    , c = { tg: [ [ 'name', 'GTA'] , [ 'key', 'game'] ] } 


let aTG =  Object.fromEntries(a.tg)
  , bTG =  Object.fromEntries(b.tg)
  , cTG =  Object.fromEntries(b.tg)
  
console.log( 'aTG asName ?', Boolean(aTG.name) )
console.log( 'bTG asName ?', Boolean(bTG.name) )
console.log( 'cTG asName ?', Boolean(cTG.name) )

if (!!aTG.name) console.log( 'aTG.key ->', aTG.key )
 


推荐阅读