如何遍历对象键/获取对象的键



我正在尝试创建一个对话框,在自适应卡中以动态方式显示对象。动态是指我不知道对象键是什么,有多少键,等等。假设对象没有嵌套数组或其他对象(基本上对象看起来像一个映射),我如何提取所有键并将它们放入数组中?

我希望从中提取键的对象示例:

{
"symbol": "MSFT",
"companyName": "Microsoft Corporation",
"primaryExchange": "Nasdaq Global Select",
"sector": "Technology",
"calculationPrice": "close",
"open": 127.42,
"openTime": 1556890200,
"close": 128.9,
"closeTime": 1556913600,
"high": 129.43,
"low": 127.25,
"latestPrice": 128.9,
"latestSource": "Close",
"latestTime": "May 3, 2019",
"latestUpdate": 1556913600,
"latestVolume": 24835154,
"iexRealtimePrice": null,
"iexRealtimeSize": null,
"iexLastUpdated": null,
"delayedPrice": 128.9,
"delayedPriceTime": 1556913600,
"extendedPrice": 129.04,
"extendedChange": 0.14,
"extendedChangePercent": 0.00109,
"extendedPriceTime": 1556917190,
"previousClose": 126.21,
"change": 2.69,
"changePercent": 0.02131,
"iexMarketPercent": null,
"iexVolume": null,
"avgTotalVolume": 22183270,
"iexBidPrice": null,
"iexBidSize": null,
"iexAskPrice": null,
"iexAskSize": null,
"marketCap": 987737229888,
"peRatio": 30.84,
"week52High": 131.37,
"week52Low": 93.96,
"ytdChange": 0.30147812013916003
}

使用自适应表达式中的select预构建函数

应该是这样的:select(myobject, x, x.key)并将其赋值给一个新的属性(或者你需要使用该数组)。

你可以使用playground表达式来进一步测试:https://playgroundclient.azurewebsites.net/

我用表达式做了一个快速测试:

select(myobject, x, x.key)

And my data/properties as:

{
"myobject": {
"symbol": "MSFT",
"companyName": "Microsoft Corporation",
"primaryExchange": "Nasdaq Global Select",
"sector": "Technology",
"calculationPrice": "close"
}
}

我得到了结果:

["symbol","companyName","primaryExchange","sector","calculationPrice"]
如果我误解了你的要求/问题,请告诉我。如果这回答了你的问题;请注明已回答。

可以使用Keys方法。

const myObject = {
"symbol": "MSFT",
"companyName": "Microsoft Corporation",
"primaryExchange": "Nasdaq Global Select",
"sector": "Technology",
}
const keys = Object.keys(myObject);
keys.map(key=>console.log(key,"->", myObject[key]));

现在,如果你有内部对象,你需要创建一个函数来检查它是否是对象。如果它是object,那么你可以运行keys方法并将其压入新数组。

最新更新