javascript - 根据特定属性过滤对象数组
问题描述
我有一组显示的列:
displayedColumns = ['CompanyName','Ticker', 'Id', 'Name', 'Date',
'Spot', 'PreviousTradeDate', 'PreviousSpot', 'FPrice', 'Status']
和一个对象数组(从 db 中检索,其中包含多个显示的列属性):
data = [ {CompanyName = "..." Ticker = "..." other attributes........}
{.......} ]
我无法过滤data
数组以仅显示displayed columns
属性及其值(没有其他属性)
map()
当我想过滤多个值时,不太明白如何使用函数
多谢
解决方案
您可以仅使用所需键将数组映射到新对象。
var displayedColumns = ['CompanyName','Ticker', 'Id'],
data = [{ CompanyName: 'ABC', Ticker: '123', Id: 1, x: 'foo' }, { CompanyName: 'ABD', Ticker: '124', Id: 2, x: 'bar' }];
result = data.map(o => Object.assign(...displayedColumns.map(k => ({ [k]: o[k] }))));
console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }
推荐阅读
- vb.net - .DrawToBitmap 保存的图像无法在 IE 浏览器中打开
- r - power.prop.test 中的默认功率应该是多少?
- java - Maven 命令 mvn clean verify 未激活 Failsafe 以运行集成测试
- angular - 在 Angular 中,在 *ngIf 中使用 *ngFor 不起作用
- reactjs - react-navigation:在没有道具/状态的情况下连接组件/屏幕
- cordova - 奖励视频广告不显示 admobpro cordova
- cypress - cy 变量在柏树中来自哪里
- javascript - TinyMCE Fortify 问题 - 安全漏洞 - 开放重定向
- c - 如何检查存储在地址中的各个字节的状况?
- html - 显示
- 两排而不是一排