You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在TypeScript/JavaScript中提取对象键名?(IGDB API、Ionic、Angular)

提取对象键名并转为空格分隔字符串的实现方法

嘿,这个需求其实超容易搞定!不管你用JavaScript还是TypeScript,结合你提到的IGDB API、Ionic和Angular场景,我给你整理了几种实用的方案:

基础实现(JS/TS通用)

最直接高效的方式就是用Object.keys()方法获取对象的所有键名数组,再用join(' ')把数组元素拼接成空格分隔的字符串。

举个简单的例子:

// 你的原始货币对象
const currencies = { 
  "AED": "United Arab Emirates Dirham", 
  "AFN": "Afghan Afghani", 
  "ALL": "Albanian Lek" 
};

// 提取键名并转为目标格式
const formattedCodes = Object.keys(currencies).join(' ');
console.log(formattedCodes); // 输出: "AED AFN ALL"

TypeScript类型增强版

如果用TS开发(比如Angular/Ionic项目),你可以给对象定义明确的类型,让代码更健壮、可读性更强:

// 定义货币映射类型
type CurrencyMapping = {
  [code: string]: string;
};

// 带类型约束的原始对象
const currencies: CurrencyMapping = { 
  "AED": "United Arab Emirates Dirham", 
  "AFN": "Afghan Afghani", 
  "ALL": "Albanian Lek" 
};

// 处理逻辑和JS一致
const formattedCodes = Object.keys(currencies).join(' ');

Angular/Ionic场景下的实战示例

假设你从IGDB API请求到货币数据,在Angular组件里可以这么处理:

import { Component, OnInit } from '@angular/core';
import { HttpClient } from '@angular/common/http';

@Component({
  selector: 'app-currency-display',
  templateUrl: './currency-display.component.html',
  styleUrls: ['./currency-display.component.scss']
})
export class CurrencyDisplayComponent implements OnInit {
  currencyCodeString: string = '';

  constructor(private http: HttpClient) {}

  ngOnInit(): void {
    // 替换为实际的IGDB API请求端点
    this.http.get<CurrencyMapping>('https://api.igdb.com/v4/currencies')
      .subscribe((currencyData) => {
        // 把API返回的对象处理成你需要的空格分隔格式
        this.currencyCodeString = Object.keys(currencyData).join(' ');
      });
  }
}

// 在组件外定义类型,方便复用
type CurrencyMapping = {
  [code: string]: string;
};

小补充

如果你的对象存在继承来的可枚举属性(这种情况在API返回的数据里几乎不会出现),可以用Object.getOwnPropertyNames()替代Object.keys(),它只会返回对象自身的属性名。不过绝大多数场景下,Object.keys()完全够用。

内容的提问来源于stack exchange,提问作者Eyad Kelleh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 07:29:29