首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >基于另一个数组的值的类型记录顺序数组

基于另一个数组的值的类型记录顺序数组
EN

Stack Overflow用户
提问于 2019-10-29 17:43:19
回答 2查看 139关注 0票数 1

假设我有一个基数组

代码语言:javascript
运行
复制
let object2 = ["DotNet", "ETL", "Hadoop", "Java", "Oracle", "Pega", "MainFrame"]

我想按照基数组的相同顺序排列第二个数组。

代码语言:javascript
运行
复制
 let object1 = [{Name: "Java", ResourceCount: 3}, {Name: "DotNet", ResourceCount: 4}, {Name: "Hadoop", ResourceCount: 1}, {Name: "Pega", ResourceCount: 2}, {Name: "Oracle", ResourceCount: 1}, {Name: "ETL", ResourceCount: 1}, {Name: "MainFrame", ResourceCount: 0}]

所以看起来就像这样

代码语言:javascript
运行
复制
object1 = 
[{Name: "DotNet", ResourceCount: 4},
{Name: "ETL", ResourceCount: 1},
{Name: "Hadoop", ResourceCount: 1},
{Name: "Java", ResourceCount: 3}, 
{Name: "Oracle", ResourceCount: 1},
{Name: "Pega", ResourceCount: 2},
{Name: "MainFrame", ResourceCount: 0}]

如果没有硬编码,我怎么能做到呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-10-29 17:52:20

一个可能的解决方案是使用Array.map来迭代有序的名称列表,并将每个String“映射”到对象列表中的相关对象中。

关联是使用Array.find完成的,它接收返回相关对象的函数作为参数:

代码语言:javascript
运行
复制
const list1 = ["DotNet", "ETL", "Hadoop", "Java", "Oracle", "Pega", "MainFrame"];
const list2 = [{Name: "Java", ResourceCount: 3}, {Name: "DotNet", ResourceCount: 4}, {Name: "Hadoop", ResourceCount: 1}, {Name: "Pega", ResourceCount: 2}, {Name: "Oracle", ResourceCount: 1}, {Name: "ETL", ResourceCount: 1}, {Name: "MainFrame", ResourceCount: 0}];

const ordered = list1.map(function(nameValue) {
  return list2.find((obj) => (obj.Name === nameValue));
});

console.log(ordered);

票数 1
EN

Stack Overflow用户

发布于 2019-10-29 18:01:35

代码语言:javascript
运行
复制
let object2 = ["DotNet", "ETL", "Hadoop", "Java", "Oracle", "Pega", "Mainframe"]
let object1 = [{Name: "Java", ResourceCount: 3}, {Name: "DotNet", ResourceCount: 4}, {Name: "Hadoop", ResourceCount: 1}, {Name: "Pega", ResourceCount: 2}, {Name: "Oracle", ResourceCount: 1}, {Name: "ETL", ResourceCount: 1}, {Name: "Mainframe", ResourceCount: 0}]
var arr=[]

object2.map(item=>{
  object1.map(data=>{
    if(data.Name===item)
         {
           arr.push(data)
         }          
                    })
})
console.log(arr)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58612843

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档