如何移除JavaScript对象的最顶层键?求可行解决方案
移除JavaScript对象最顶层键的可行方案
情况1:已知顶层键名
如果明确知道顶层的键名(比如你的例子里的page),直接取值即可,这是最简单的方式:
const obj = { page: { title: 'x', images: { 0: { src: '...' } } } }; const result = obj.page; console.log(result);
情况2:未知顶层键名(仅单个顶层键)
如果不确定顶层键名,但对象只有一个顶层键,可以用Object.values()获取所有值的数组,再取第一个元素:
const obj = { page: { title: 'x', images: { 0: { src: '...' } } } }; const result = Object.values(obj)[0]; console.log(result);
情况3:多个顶层键(合并所有值到一个对象)
如果对象有多个顶层键,需要把所有顶层值合并成一个新对象,可以用Object.assign():
const obj = { page: { title: 'x' }, info: { author: 'y' } }; const result = Object.assign({}, ...Object.values(obj)); console.log(result); // 输出 { title: 'x', author: 'y' }
为什么你的map方法不符合预期?
Object.keys(obj).map()返回的是数组,比如你的代码会得到[{ title: 'x', images: {...} }],而你需要的是对象,所以结果不符合预期。如果一定要用map,后续需要取数组的第一个元素,但这属于绕弯路,不如直接用上面的方法。
内容的提问来源于stack exchange,提问作者Run
相关产品推荐
相关产品推荐

