JS使用map()获取键名[重复]

Posted

技术标签:

【中文标题】JS使用map()获取键名[重复]【英文标题】:JS get key name using map() [duplicate] 【发布时间】:2021-12-23 16:54:00 【问题描述】:

我有以下对象:


    "thumbnail": 
        "height": 150,
        "width": 150,
    ,
    "medium": 
        "height": 165,
        "width": 300,
    ,
    "large": 
        "height": 352,
        "width": 640,
           

我想从对象创建以下数组。

[
    
        "slug": "thumbnail",
        "name": "Thumbnail"
    ,
    
        "slug": "medium",
        "name": "Medium"
    ,
    
        "slug": "large",
        "name": "Large"
    ,
    
        "slug": "full",
        "name": "Full"
    
]

如何获取要添加到数组的对象键名?我尝试了以下方法:

map( imageSizesArray,
   (  key  ) => (  value: key, label: key.toUpperCase()  )
);

但它不起作用

【问题讨论】:

在回调中使用Object.keys(obj)[0]获取key即可。 value 是从哪里来的。不应该是slug吗? @VLAZ 在您的封闭链接中,OP 以数组开头,此处 OP 以对象开头,Cyber​​J 直接使用Object.keysreference @SimoneRossaini 有三个链接。对于如何获取对象的键,每个人都至少有一个答案。 @SimoneRossaini 删除了第一个用于数组的链接,并添加了另外两个用于提取密钥的链接。总的来说,我觉得这个主题已经被充分覆盖,但可以随意提出更多重复。总共有五个插槽。 【参考方案1】:

const obj = 
    "thumbnail": 
        "height": 150,
        "width": 150,
    ,
    "medium": 
        "height": 165,
        "width": 300,
    ,
    "large": 
        "height": 352,
        "width": 640,
           


const retrnArr = Object.keys(obj).map(e =>
return   'value': e , 'label' : e.toUpperCase()
);
console.log(retrnArr)

【讨论】:

以上是关于JS使用map()获取键名[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何连接(变量+对象键名)以点表示法获取对象值[重复]

js 实现获取对象所有键名(key)的方法

php数组的重复值如何过滤掉

JS for in 循环中的key ,value 详解。

Map集合&&异常处理&&file类

Doctrine2重复键名错误