如何提取对象内子对象的名称数组?merge()与map方法尝试无效
解决方法
先纠正原始代码的语法错误
你写的obj存在语法问题:JavaScript对象要求键值对结构,直接在{}里放两个无键对象会报错。分两种场景处理:
场景1:本意是数组(最可能的情况)
把外层{}改成[],定义合法数组:
const arr = [ {id: 1, name: 'Jane'}, {id: 2, name: 'Lim'} ];
直接用map提取name属性即可:
const result = arr.map(item => item.name); // 输出:['Jane', 'Lim']
场景2:本意是带键的对象
如果你的数据确实是带自定义键的对象结构:
const obj = { item1: {id: 1, name: 'Jane'}, item2: {id: 2, name: 'Lim'} };
先用Object.values()取出对象的所有值(转为数组),再用map提取属性:
const result = Object.values(obj).map(item => item.name); // 输出:['Jane', 'Lim']
为什么之前的方法无效
- 原始代码语法错误,导致
obj不是合法的数组/对象,map无法正常调用 merge()是用于合并对象的方法,和提取属性无关,自然达不到目标
内容的提问来源于stack exchange,提问作者Apple
相关产品推荐
相关产品推荐

