javascript - 从一组对象中选择值并创建一个新对象:Javascript
问题描述
我有一个格式的对象数组:
input = [
{ key : "Test1", value: 25, total: 100},
{ key : "Test2", value: 35, total: 200},
{ key : "Test3", value: 45, total: 300},
{ key : "Test4", value: 55, total: 400},
{ key : "Test5", value: 65, total: 500}
]
我基本上必须从中获取一些属性并形成一个应该看起来像这样的新数组。text
等同于在单独对象中维护的文本表示。
textObj = { "Test1" : "Test1Eq" , "Test2" : "Test2Eq" , "Test3" : "Test3Eq" , "Test4" : "Test4Eq" , "Test5" : "Test6Eq" }
我只需要获取计数Text1, Text4, Text 5
并返回其等效文本及其在新数组中的计数。
结果
output = [
{ text : "Test1Eq", count: 25},
{ text : "Test4Eq", count: 55},
{ text : "Test5Eq", count: 65}
]
我试过的方法
const res = input.map(item=>{
return{
text :textObj[item.key],
count: item.count
}
});
解决方案
要查找计数,您可以使用array#find
.
const input = [ { key : "Test1", value: 25, total: 100}, { key : "Test2", value: 35, total: 200}, { key : "Test3", value: 45, total: 300}, { key : "Test4", value: 55, total: 400}, { key : "Test5", value: 65, total: 500} ],
textObj = { "Test1" : "Test1Eq" , "Test2" : "Test2Eq" , "Test3" : "Test3Eq" , "Test4" : "Test4Eq" , "Test5" : "Test6Eq" },
keys = ['Test1', 'Test4', 'Test5'],
result = keys.map(key => ({
text: textObj[key],
count: input.find(o => o.key === key)?.value
}));
console.log(result);
推荐阅读
- c# - Automapper 映射复杂的嵌套对象
- c# - 在网络服务器 ASP Net Core/Angular 上保存私有图像的最佳实践
- ios - BLE Mesh 与 Google Home 和 Apple Homekit
- stdstring - 为什么 basic_string::size() & '_M_string_length' 在同一个类中,返回**不同的**值,即使 size() 返回 'size_type _M_string_length'?
- nginx - Odoo 12:如何启用与工人聊天
- c# - 如何使用 C# switch 语句的返回值以 true 或 false 退出任务?
- forms - 移动到另一个屏幕时,如何使下拉列表保持最后选择的选项
- python - 具有多个条件的 Python While 循环未退出
- mysql - Liquibase 验证异常:mysql 中不允许使用 forIndexName
- flask - 识别金家模板分隔符